gradle war:如何构建jar,而不是类

gradle war:如何构建jar,而不是类,gradle,jar,war,Gradle,Jar,War,Gradle war插件:如何构建jar并将其添加到war projectRoot/ src/main/java src/main/resources src/main/webapp 从java源代码和资源构建一个jar(foo.jar) 在war的WEB-INF/lib下添加jar WEB-INF/lib/foo.jar war任务默认情况下不会构建jar,而是在WEB-INF/classes下添加所有java类和资源 更新 有一种方法可以启用

Gradle war插件:如何构建jar并将其添加到war

projectRoot/
        src/main/java
        src/main/resources
        src/main/webapp
  • 从java源代码和资源构建一个jar(foo.jar)
  • 在war的WEB-INF/lib下添加jar

    WEB-INF/lib/foo.jar

  • war任务默认情况下不会构建jar,而是在WEB-INF/classes下添加所有java类和资源

    更新
    有一种方法可以启用Jar生成,并让task war依赖于task Jar?

    不确定Eastweat是否还需要答案,希望其他有同样问题的人会觉得这很有帮助

    您可以在build.gradle中添加/配置war任务

    war {
        classpath = classpath - sourceSets.main.output
        from (jar) {
            into 'WEB-INF/lib'
        }
    }
    

    一旦构建成功,在build/libs文件夹中,您将看到生成的jar和包含生成的jar的war,而不是类

    出于好奇,您为什么要关心呢?您可以将项目分为两个模块,一个包含类和资源(使用java插件),另一个包含webapp(使用war插件)根据第一种情况,jar可以被其他人用作依赖项。也许两个模块是一个解决方案。war项目可以是根项目,jar项目可以是子项目吗?还是两个模块?模块和子项目之间的区别是什么?谢谢。模块和子项目是一样的。
    war {
        classpath = classpath - sourceSets.main.output
        from (jar) {
            into 'WEB-INF/lib'
        }
    }