Gradle用不同的资源和类进行多次战争

时间:2014-12-04 02:32:45

标签: java gradle

我有一个Java Web项目,我使用Gradle构建项目,项目结构如下。

我想使用Gradle构建2个战争,main.war和api.war,以及战争结构如下。

我已多次尝试构建这两场战争,但是当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/**") 
}

1 个答案:

答案 0 :(得分:0)