如何在jar中包含子项目类?

时间:2015-11-11 14:33:48

标签: java gradle

经过几个小时的研究和尝试,我希望有人可以解释我们如何让Gradle包括一个或多个子项目的类到特定的jar中。

让我们说我们只有三个模块

  1. 核心
  2. 应用
  3. 网络
  4. 显然,AppWeb项目工件(jars)应该包含Core项目中的所有类。

    设置gradle:

    rootProject.name = 'MyProject'
    include 'MyProjectCore'
    include 'MyProjectApp'
    include 'MyProjectWeb'
    

    MyProjectApp / MyProjectWeb:

    ...
    dependencies {
        ...
        compile project(':MyProjectCore')
    }
    

    可以编译项目,但输出jar不包含核心类。

1 个答案:

答案 0 :(得分:5)

好吧,最后我找到了一个可行的解决方案,即使它可能不是最好的。

对于AppWeb项目,我会覆盖jar这样的任务,以添加Core模块的源集。

jar {
    from project.sourceSets.main.allSource
    from project(":MyProjectCore").sourceSets.main.java.srcDirs
}