2016-11-23 46 views
0

因此,我正在嘗試創建一個包含多個戰爭項目的根級耳項目,但似乎無法使其工作。削下來的最簡單的層面,讓想我有這樣的目錄結構:Gradle - 在EAR中包含多個WAR項目

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 

在myWarX subporjects每個的build.gradle文件很簡單:

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。另外,如果我擴大了這些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 

好像應該有一個簡單的解決方案,但我不能爲我的生活找到它。任何幫助將不勝感激。

謝謝, 馬庫斯。

回答

1

好吧我是個白癡。這是因爲我正在將「耳朵」插件應用於所有項目。如果我更換:

allprojects { 
    apply plugin: 'java' 
    apply plugin: 'eclipse' 
    apply plugin: 'war' 
    apply plugin: 'ear' 
} 

與簡單地按預期

apply plugin 'ear' 

一切正常。

相關問題