【问题标题】:maven-publish multi-project artifacts dependenciesmaven-publish 多项目工件依赖项
【发布时间】:2017-06-12 08:07:22
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    你需要修改你的项目配置。

    当您使用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 文件。

    【讨论】:

      猜你喜欢
      • 2018-02-21
      • 2013-06-22
      • 1970-01-01
      • 2018-10-20
      • 2014-05-25
      • 2012-12-15
      • 2014-07-04
      • 2015-07-15
      • 1970-01-01
      相关资源
      最近更新 更多