java - Gradle 使用不同的资源和类进行多次 war

标签 java gradle

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

我想使用Gradle构建2个wars,main.war和api.war,wars结构如下。

我已经尝试了很多次来构建这两个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

我想要的 war 结构:

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/**") 
}

最佳答案

关于java - Gradle 使用不同的资源和类进行多次 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27285296/

相关文章:

java - 具有返回值的模拟测试方法

java - Apache 公共(public)集合的奇怪问题

javax.net.ssl.SSLHandshakeException : sun. security.validator.ValidatorException:证书签名验证失败

java - Firebase 获取值返回 NULL 值

android - 无法解析 Facebook 导入的符号

android - Android Studio Gradle Analyze已损坏

gradle - 无法应用插件[id 'realm-android']

android - Android:无法解析符号getDefaultProguardFile

java - Cassandra 所有依赖项失败

java - MuleESB - 无法初始化类 sun.awt.SunToolkit