Подтвердить что ты не робот

Gradle ухо помещает JAR вместо WAR

Я пытаюсь создать ухо с помощью Gradle.
У меня есть мое дерево проектов:

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

Я пытаюсь создать ухо с помощью плагина уха, но когда я делаю gradle assemble, у меня есть war, созданный в каталоге сборки веб- приложение, но внутри сгенерированного уха у меня есть 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'
}

Что я сделал не так?

Я замечаю, что также связанные образцы для плагина войны имеют ту же проблему... Спасибо заранее

4b9b3361

Ответ 1

РЕШИТЬ!

Ему необходимо настроить модуль WAR внутри проекта EAR следующим образом:

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

Ответ 2

Вы можете не указывать конфигурацию для каждой зависимости для развертывания, используя что-то вроде этого:

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

...

dependencies {
  deploy project(':web-application')
}