我正在尝试使用Gradle构建 ear 我的项目树就像:
/project
|
|--> /web-application
| |
| |--> /src (stuff of web app)
| |
| |--> build.gradle
|
|--> build-gradle
|--> settings.gradle
我正在尝试使用 ear插件生成耳朵,但是当我执行gradle assemble
时,我在构建下创建了 war web-application 的目录,但在生成的 ear 内部,我有一个Web应用程序的 jar 。
gradle配置文件非常简单,它们是:
project / build.gradle
apply plugin: 'ear'
repositories {
mavenCentral()
}
dependencies {
deploy project(':web-application')
earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}
project / web-application / build.gradle
apply plugin: 'war'
repositories {
mavenCentral()
}
dependencies {
compile group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}
我做错了什么?
我注意到war插件的捆绑样本也存在同样的问题...... 提前致谢
答案 0 :(得分:32)
解决!
需要将EAR项目内的WAR模块配置为:
dependencies {
deploy project(path:':web-application', configuration:'archives')
earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}
答案 1 :(得分:1)
您可以避免使用以下内容为每个部署依赖项指定配置:
allprojects {
plugins.withType(WarPlugin) {
// Set default configuration as WAR archive if WAR plugin is used
configurations {
'default' {
extendsFrom = [archives]
}
}
}
}
...
dependencies {
deploy project(':web-application')
}