如何在Gradle的当前项目中添加其他项目?

时间:2014-01-23 10:12:46

标签: interface-builder gradle

我有两个项目ProjA和ProjB,这里ProjB依赖于ProjA。那么,如何在ProjB中包含ProjA? 如果ProjA build.gradle文件发生变化,请告诉我?

2 个答案:

答案 0 :(得分:0)

好的,你有两个项目,而ProjA依赖于ProjB。

如果您已经为这些设置了gradle构建,那么它们都将具有文件settings.gradle,它至少定义了项目名称和build.gradle,您可以在其中指定依赖项。

实施例: settings.gradle

rootProject.name = 'ProjA'

的build.gradle

group = 'mygroup'
version = '1.0'

通过进一步添加Gradle的一个发布插件(请参阅Maven publishingIvy publishing),您可以配置发布。反过来,出版物包含工件,即您要上载的文件(通常还有一些存储库)。 最小Maven出版物的示例:

apply plugin: 'maven-publish'
publishing {
    publications {
        core(MavenPublication) {
            from components.java
        }
    }
}

maven-publish插件会将任务publishToMavenLocal(以及其他)添加到您的项目中,该项目将jar安装到~/.gradle/caches/的某个位置。

在ProjB的build.gradle中,您可以在ProjA上定义编译时依赖项,如下所示:

dependencies {
    compile(group: 'mygroup', name: 'ProjA', version: '1.0')
}

答案 1 :(得分:0)

如果您的项目位于同一地点,您可以拥有一个多建筑项目。

假设您有一个包含以下内容的根文件夹:

  • 一些根目录
    • 项目一
      • project-a.gradle
      • SRC
    • 项目-B
      • project-b.gradle
      • SRC
    • build.gradle
    • settings.gradle

settings.gradle包含:

include 'project-a', 'project-b'
然后

project-b.gradle取决于项目A:

dependencies {
   compile project(':project-a')
}

在此之后,项目a将始终在project-b之前编译和汇编,而项目的jar文件 - 在编译project-b时jar将在类路径上。