如何在 Gradle 中创建一个没有 jar 依赖的共享项目

How to create a shared project in Gradle without a jar dependency

我的根项目下有 4 个项目:shared、proj1、proj2 和 proj3。

Proj1、proj2、proj3均使用'shared'项目代码。我试图了解如何将共享项目的源代码包含在其他 3 个项目中的每一个中,这样当我创建项目的档案和 javadoc 以及源 jar 时,它们也将包含共享项目内容。

确保每个模块(~项目)都有自己的 build.gradle。在其中一个项目的 build.gradle

dependencies {
    ...
    compile project('shared')
    // If you have a dependency tree between projects
    compile project('project2')
    ...
}

在你的 settings.gradle 中,这是全局的

include 'project1', 'project2', 'project3', 'shared'
// Only if your project is not on on the same path
project(':project2').projectDir = new File('../stuff/project2')

我找到了答案:在 3 个相关项目(proj1、proj2 和 proj3)中,源集应该按以下方式扩展:

sourceSets {
    main {
        java {
            srcDirs(project(':shared').sourceSets.main.java)
        }
    }
}

这样,当为每个项目使用 Gradle 的内置 'javadoc' 和 sources 任务时,输出 jar 也将包含 'shared' 项目内容(即 .class 文件、文档和 .java 文件)。