maven-publish多项目工件依赖项

时间:2017-06-12 08:07:22

标签: android gradle publish multi-project maven-publish

早上好,

我一直在寻找我的问题的答案,但我没有找到。 我构建了一个包含许多模块的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
        }
    }
}

关于

1 个答案:

答案 0 :(得分:0)

您需要修改项目配置。

当您使用components.java时,maven-publish插件将设置Gradle项目配置中的groupId,artifactId和版本。

默认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文件。