Bog*_*rac 10 java java-ee gradle maven
Android Gradle插件增加了对构建类型和构建变体的支持,使您可以在构建步骤(例如,调试或发布)中选择要构建的应用程序版本.
这对于Gradle项目来说是一个非常有用的功能,因为您可以拥有两个版本的应用程序,这些版本在某些情况下可能会有不同的行为,或者具有不同的配置文件或属性,具体取决于构建类型.
现在,我的问题是:Maven或Gradle的非Android Java项目是否有类似的功能/实现?我正在寻找专门针对Java Web应用程序,但我认为这个问题也可能有更大的目标.
言归正传,没有含糊的答案,以下是官方对Luke Daley (Gradleware Engineer)此事的回应:
这是我们正在积极努力的事情。我们正在努力以通用方式支持变体的概念,以便跨领域采用一致的方法。这是一个非常非常深刻的改变,所以涉及很多东西。
您可以期待在 Gradle 2.5 及更高版本中看到此功能的各个方面。
稍后编辑:我终于能够通过使用 SourceSets 而不是 Build Types & Variants 在 JavaEE webapp 项目上工作了。考虑到 SourceSets 已经存在了很长一段时间,显然你很久以前就可以做到这一点......但即使是 gradle 工程师也无法正确解释如何做到这一点......
无论如何,请查看build.gradle下面的代码,其中我们对两个 SourceSet 使用相同的输出目录,然后指定 WAR 插件构建的位置:
apply plugin: 'war'
sourceSets {
main {
output.resourcesDir = 'build/resources'
output.classesDir = 'build/classes'
}
debug {
java {
compileClasspath += main.output
runtimeClasspath += main.output
}
output.resourcesDir = 'build/resources'
output.classesDir = 'build/classes'
}
}
task assembleDebugWar(type: War) {
from sourceSets.debug.output
archiveName "ROOT.war"
}
task assembleReleaseWar(type: War) {
from sourceSets.main.output
archiveName "ROOT.war"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2020 次 |
| 最近记录: |