2014-12-04 39 views
1

我有一個Java Web項目,我使用Gradle構建項目,項目結構如下。Gradle與不同的資源和類進行多次戰爭

我想用Gradle來構建2個戰爭,main.war和api.war,以及戰爭結構如下。

我已經嘗試過多次構建這些2次戰爭,但是當main.war正確時,api.war是錯誤的,當api.war正確時,main.war是錯誤的。

任何人都可以給我一些幫助嗎?謝謝。

項目結構:

project-root 
    |--src 
    |--api 
     |--resources 
     |--api.xml 
     |--webapp 
     |--WEB-INF 
      |--web.xml(api) 
    |--main 
     |--java 
     |--xxx.xxx.api 
     |--xxx.xxx.model 
     |--some other packages 
     |--resources 
     |--main.xml 
     |--webapp 
     |--websrc 
      |--js 
      |--style 
     |--WEB-INF 
      |--web.xml(main) 
     |--index.html 

戰爭結構,我想:

main.war 
    |--websrc 
    |--js 
    |--style 
    |--WEB-INF 
    |--classes 
     |--all packages exclude api package 
     |--main.xml 
    |--web.xml(main) 
    |--index.html 



api.war 
    |--WEB-INF 
    |--classes 
     |--xxx.xxx.api 
     |--xxx.xxx.model 
     |--api.xml 
    |--web.xml(api) 

我gradle這個文件:

task create_main_war(type: War, dependsOn: classes) { 
    baseName = "main" 
    rootSpec.exclude("**/api/**") 
} 

task create_api_war(type: War, dependsOn: classes) { 
    baseName = "api" 
    SourceSets { 
     main.resources.srcDirs += "src/api/resources" 
    } 
    webAppDirName = "src/api/webapp 
    rootSpec.exclude("**/main.xml") 
    rootSpec.exclude("**/someOtherPackages/**") 
} 
+0

你可以發佈你正在使用的* build.gradle *文件,所以我們有一個起點? – 2014-12-04 06:51:32

+0

好的,我已經添加了我的gradle文件內容。 – zhaozhiming 2014-12-04 09:42:20

+0

請不要在這裏和http://forums.gradle.org上發帖。 – 2014-12-04 18:03:43

回答