【发布时间】:2015-04-16 01:42:32
【问题描述】:
我想使用 gradle v2.3 配置来打包我的应用程序有两种方式:
- ear 包含 ear 的 lib 目录 中的所有库和 ear 内的多重战争(使用 providedCompile 和 earlib 声明的 deps)
- WEB-INF/lib 中的 multiple war 文件,每个 war 中都包含库(deps 用 compile 声明)
如果我每次想要不同的打包时都修改 build.gradle 文件,我可以执行这两项任务中的每一项。
我想使用 configurations 来选择 jars 是否包含在 war 文件中,方法是使用gradle build<ConfigurationName>。
根据帮助和StackOverflow post How to use uploadConfigurationName and buildConfigurationName,我编写了以下文件(这是针对其中一场战争):
apply plugin: 'war'
configurations {
packEar
packWar
}
dependencies {
configurations.packEar {
providedCompile project(':Common') // jars will be included using earlib
}
configurations.packWar {
compile project(':Common') // jars included in war
}
}
artifacts {
packWar war
packEar war
}
问题是命令 gradle buildpackWar 和 gradle buildpackEar 产生 equal wars 不包括 jars 来自Common 项目。
如果我将 packEar 的配置从 providedCompile 更改为 compile 两者都会产生包含 jars 的战争。
附加信息: 我尝试使用extendFrom compile / providedCompile,但似乎没有任何影响。我包含了buildpackWar 和buildpackEar 方法,但它也不起作用(可能是我以错误的方式使用它们)。
感谢您的回答!
最好的问候, 齐加
【问题讨论】: