Grails — Как добавить JAR JDBC JAR в путь к классам без помещения в /lib?

Я пытаюсь запустить приложение Grails локально с помощью tomcat, но не помещая ojdbc6.jar в /lib. Мое приложение Grails развернуто в Glassfish и отлично работает на сервере (поскольку там доступен файл ojdbc6.jar). Как и ожидалось, ошибка:

Could not load JDBC driver class [oracle.jdbc.driver.OracleDriver]

(Неудачный) подход №1

Сначала я настроил свою конфигурацию запуска GGTS, чтобы включить аргументы виртуальной машины:

-cp :/somelocalpath/oracle-jdbc-drivers

Однако ошибка осталась.

(Неудачный) подход № 2

В настоящее время я пытаюсь использовать jvmArgs, чтобы указать на локальную версию jar.

grails.tomcat.jvmArgs = ["-cp:/somelocalpath/oracle-jdbc-drivers/ojdbc6.jar"]

Однако бег-война приводит к:

| Error Server failed to start: tomcat exited prematurely with code '1' (error output: 'Unrecognized option: -cp:/apps/glassfish3/oracle-jdbc-drivers/ojdbc6.jar
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
') 

Я должен уточнить свой основной акцент - я не хочу, чтобы банка была включена в финальную войну.

Любая помощь будет оценена по достоинству. Спасибо!


person bigfatony    schedule 08.10.2014    source источник


Ответы (1)


Из документации:

Grails.war.resources позволяет выполнить любую дополнительную обработку до окончательного создания WAR-файла.

В вашем случае вам нужно добавить что-то подобное в свою конфигурацию сборки, чтобы исключить банку финальной WAR.

grails.war.resources = { stagingDir ->
  delete(file:"${ stagingDir }/WEB-INF/lib/yourJarFile.jar")
}
person Abincepto    schedule 08.10.2014
comment
Это именно то, что я в итоге использовал! - person bigfatony; 08.10.2014