使用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)