我已经将我的应用程序配置为在开发环境中运行时使用Oracle,方法是在lib目录中添加驱动程序jar并刷新依赖项。然后,当我构建应用程序时,Grails在war文件中包含此驱动程序jar。我的目标是避免在war文件中包含驱动程序jar,因为我将在已有此驱动程序的Tomcat服务器中部署该应用程序。
Grails版本:2.1.1
有什么想法吗?
由于
答案 0 :(得分:1)
我想说的是,提供的范围是:
dependencies {
provided 'oracle:oracle-driver:6.66'
}
使用此范围,依赖项会在开发中添加,但不包含在打包战争中,因为它将由将要部署WAR的运行时环境提供。
答案 1 :(得分:1)
我建议在BuildConfig.groovy
文件中定义依赖项,而不是手动将jar放入lib目录。在BuildConfig.groovy
中你应该有一个依赖块。在其中你可以添加你的依赖
dependencies {
build('ojdbc:ojdbc:14')
}
在BuildConfig.groovy
内部你可以添加一个像这样的块,当你构建它时,它也会从战争中删除它(Stackoverflow on removing files from war):
grails.war.resources = { stagingDir ->
//you can use wild cards or explicitly remove it
delete(file:"${stagingDir}/WEB-INF/lib/ojdbc*.jar")
}
答案 2 :(得分:0)
以下是您要寻找的Gradle或Maven, 建议使用grails-gradle-plugin代替。 清理和使用引导范围以从战争中排除Tomcat jar。
一般信息
在youtube上的gr8conf 2013.我能够创建一个小POC,并且Gradle似乎可以与Grails 2.1.1一起使用。
Gradle构建文件
buildscript {
repositories {
mavenCentral()
maven { url 'http://repository.jboss.org/maven2/' }
maven { url 'http://repo.grails.org/grails/repo' }
maven { url 'http://repo.grails.org/grails/plugins' }
maven { url 'http://repository.springsource.com/maven/bundles/release' }
maven { url 'http://repository.springsource.com/maven/bundles/external' }
maven { url 'http://repository.springsource.com/maven/libraries/release' }
maven { url 'http://repository.springsource.com/maven/libraries/external' }
}
dependencies {
classpath 'org.grails:grails-gradle-plugin:2.0.0-SNAPSHOT',
'org.grails:grails-bootstrap:2.2.3'
}
}
version='0.0.1'
apply plugin: 'grails'
repositories {
mavenCentral()
maven { url 'http://repository.jboss.org/maven2/' }
maven { url 'http://repo.grails.org/grails/repo' }
maven { url 'http://repo.grails.org/grails/plugins' }
maven { url 'http://repository.springsource.com/maven/bundles/release' }
maven { url 'http://repository.springsource.com/maven/bundles/external' }
maven { url 'http://repository.springsource.com/maven/libraries/release' }
maven { url 'http://repository.springsource.com/maven/libraries/external' }
}
grails {
grailsVersion '2.2.3'
version '2.2.3'
}
configurations {
all {
exclude module: 'commons-logging'
exclude module: 'xml-apis'
}
test {
exclude module: 'groovy-all'
}
compile {
exclude module: 'hibernate'
}
}
dependencies {
compile( "org.grails:grails-crud:$grails.grailsVersion",
'org.grails:grails-gorm:1.3.7')
bootstrap "org.grails:grails-plugin-tomcat:$grails.grailsVersion"
}