Gradle ear正在使用JAR而不是WAR

时间:2013-03-12 12:04:18

标签: war gradle ear

我正在尝试使用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插件的捆绑样本也存在同样的问题...... 提前致谢

2 个答案:

答案 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')
}