1

我一直在寻找我的问题的答案,但我没有找到。我构建了一个包含许多模块的 android 项目。模块应该在存储库中发布(首先在本地 maven 存储库中)。我用两个简单的项目 pr1、pr2 做了一个演示项目。现在我已将 pr1 的依赖项添加到 pr2。

compile ('de.test:project1:1.0.0')

之后,我可以发布这两个工件。

现在,当我将名称从 pr2 更改为 aPr2 时,无法从 aPr2 中解析依赖关系,因为 jar 文件不存在。问题是 aPr2 是在 pr1 之前构建的。

我如何告诉 Gradle 以正确的顺序构建它?

这是我其中一个项目的 Gradle 文件。Pr1 类似,没有依赖性。

plugins {
    id 'java'
    id 'maven-publish'
    }
dependencies {
//    compile project(':project1')
    compile ('de.test:project1:1.0.0')
    testCompile 'junit:junit:4.12'
}
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
publishing {
    publications {
        publish(MavenPublication) {
            groupId 'de.test'
            artifactId 'project2'
            version '1.0.0'
            from components.java
        }
    }
}
4

1 回答 1

1

您需要修改项目配置。

使用components.java时,maven-publish插件会从 Gradle 项目配置中设置 groupId、artifactId 和 version。

默认 artifactId 已设置为项目名称(默认:文件夹名称)。它是只读的,但您可以覆盖它。settings.gradle在子项目文件夹中创建一个文件并设置模块名称:

rootProject.name = 'project1'

将这些行写入build.gradle根项目目录中的文件,以设置所有项目的 groupId 和版本。

allprojects {
   group 'de.test'
   version '1.0.0'
}

如果您正确设置了所有内容,则可以从compile project(':project1')

您可以构建项目,并且可以发布具有de.test:project:1.0.0依赖项的 pom 文件。

于 2017-09-25T22:11:17.253 回答