使用Gradle打包war文件

Gradle中有名称为war的task,负责war文件打包,如果你的开发环境与发布环境完全相同,那么不需要任何配置,否则需要一些细微的调整。

场景一:不将一些jar文件打包到war文件中

例如jta、servlet、jsp等jar文件在开发环境中是必须使用的,但是不希望被打包到war中,那么可以:

dependencies {

providedRuntime'javax.servlet:jsp-api:2.0'

providedRuntime'javax.servlet:servlet-api:2.5'

providedRuntime'javax.transaction:jta:1.1'

}

将依赖添加到providedRuntime中,则不会出现在war文件中

场景二:classpath文件替换

在dorado-home中configuration.properties文件,在开发环境中通常具有core.runModel=debug内容,但是打包时可不需要出现这些内容,那么可以排除这些文件,使用新的文件:(如果dorado-home在classpath中,例如在src/main/resources下)

processResources {

from('src/main/resources') {

include'**/*'

exclude'dorado-home/configure*.properties'

}

from('src/production') {

include'**/*'

}

}

利用名称为processResources的task可以完成这个工作。上面的例子将dorado-home放在了main/src/resources文件夹下,而不是WEB-INF下面。通过exclude关键字将dorado-home下configure.properties、configure-debug.properties和configure-test.properties文件排除掉,即不会出现在war文件中,然后将src/production目录(下面具有dorado-home/configure.properties)下的的所有文件复制过来。

场景二:webapp文件替换

如果dorado-home在WEB-INF下面:

war {

copyAction.exclude'WEB-INF/dorado-home/configure*.properties'

webInf {

from('src/production')

}

}

你可能感兴趣的:(使用Gradle打包war文件)