Итак, я пытаюсь создать проект уха корневого уровня, который будет включать в себя несколько военных проектов, и я не могу заставить его работать. Для того, чтобы урезать его до простейшего уровня, позволяет предположим, что у меня есть структура каталогов вроде этого:Gradle - Включите несколько проектов WAR в EAR
myEar/
├── build.gradle
├── myWar1
│ ├── build.gradle
│ └── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── foo
│ │ └── hello.java
│ ├── resources
│ └── webapp
│ ├── test.html
│ └── WEB-INF
│ └── web.xml
├── myWar2
│ ├── build.gradle
│ └── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── foo
│ │ └── hello.java
│ ├── resources
│ └── webapp
│ ├── test.html
│ └── WEB-INF
│ └── web.xml
├── settings.gradle
└── src
└── main
└── application
└── application.xml
Каждый build.gradle файл в subporjects myWarX просто так:
defaultTasks 'war'
apply plugin: 'war'
Когда я бегу Gradle внутри папок myWar1/2 я получаю ожидаемый результат:
jar -xvf myWar1.war
created: META-INF/
inflated: META-INF/MANIFEST.MF
created: WEB-INF/
created: WEB-INF/classes/
created: WEB-INF/classes/com/
created: WEB-INF/classes/com/foo/
inflated: WEB-INF/classes/com/foo/hello.class
inflated: WEB-INF/web.xml
inflated: test.html
Теперь на myEar корневого уровня проекта, у меня есть следующий settings.gradle файл:
включают в себя ": myWar1", ":" myWar2
и build.gradle выглядит следующим образом:
defaultTasks 'assemble'
allprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
apply plugin: 'ear'
}
dependencies {
deploy project(path: ':myWar1', configuration: 'archives')
deploy project(path: ':myWar2', configuration: 'archives')
}
Теперь, когда я запускаю это, он создает файл myEar.ear достаточно точно, но как военные проекты перечисляются как myWar1/2.ear в архиве. Кроме того, если я расшириться эти файлы уха, это пропавшие вещи, как HTML-файлы и web.xml:
jar -xvf myEar.ear
created: META-INF/
inflated: META-INF/MANIFEST.MF
inflated: myWar1.ear
inflated: myWar2.ear
inflated: application.xml
inflated: META-INF/application.xml
jar -xvf myWar1.ear
created: META-INF/
inflated: META-INF/MANIFEST.MF
created: com/
created: com/foo/
inflated: com/foo/hello.class
inflated: META-INF/application.xml
Похоже, что должно быть простое решение этой проблемы, но я не могу для жизнь меня находит. Любая помощь будет с благодарностью оценена.
Thanks, Marcus.