22

我正在尝试使用 Gradle建立一个耳朵。
我的项目树如下:

/project
|
|--> /web-application
|    |
|    |--> /src (stuff of web app)
|    |
|    |--> build.gradle
|
|--> build-gradle
|--> settings.gradle

我正在尝试使用ear 插件生成 ear ,但是当我这样做时,我在web-application的build目录下创建gradle assemblewar,但是在生成的ear中,我有一个web 应用程序的jar。gradle 配置文件非常简单,这里是:

项目/build.gradle

apply plugin: 'ear'

repositories {
    mavenCentral()
}

dependencies {
    deploy project(':web-application')
    earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}

项目/网络应用程序/build.gradle

apply plugin: 'war'

repositories {
   mavenCentral()
}

dependencies {
    compile group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}

我做错了什么?

我注意到war插件的捆绑样本也有同样的问题......在此先感谢

4

2 回答 2

33

解决了!

它需要将 EAR 项目中的 WAR 模块配置为:

dependencies {
    deploy project(path:':web-application', configuration:'archives')
    earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}
于 2013-03-12T13:51:15.820 回答
1

You can avoid specifying a configuration for each deploy dependency using something like this:

allprojects {
  plugins.withType(WarPlugin) {
    // Set default configuration as WAR archive if WAR plugin is used
    configurations {
      'default' {
        extendsFrom = [archives]
      }
    }
  }
}

...

dependencies {
  deploy project(':web-application')
}
于 2016-12-23T06:38:41.403 回答