Gradle无法找到版本为RELEASE的Maven父依赖项。

11

我有一个名为“项目B”的项目,它的pom.xml如下所示:

<parent>
    <groupId>org.company</groupId>
    <artifactId>projectA</artifactId>
    <version>RELEASE</version>
</parent>

<artifactId>projectB</artifactId>
<version>0.0.1</version>

“项目B”是“项目A”的父项目pom。

现在我正在尝试使用Gradle创建一个新的“项目C”,如果我想将“项目B”用作依赖项,我需要指定build.gradle如下:

repositories {
    maven {
         url "http://mycompany:8081/artifactory/repository"
    }
}

dependencies {
    compile group: 'org.company', name: 'projectB', version: '0.0.1'
}

但是我遇到了以下错误:

无法解析 org.company:projectB:0.0.1。

无法解析 POM http://company:8081/artifactory/repository/org/company/projectB/0.0.1/projectB-0.0.1.pom

无法找到 org.company:projectA:RELEASE。

除了将projectA的版本号设置为特定版本外,是否有一种方法可以使gradle构建工具正常工作?

是否有一种方式让Gradle能够像Maven一样找到正确的版本?我的其他Maven项目没有找到正确版本的问题。

我不想获取Project A的最新版本,也许只需下载完整的Project B jar文件就足够了。

P.S 我在本地电脑上使用Gradle版本4.5和Maven版本3.5.2。


1
你不需要指定你感兴趣的“RELEASE”版本吗?仅仅写上“RELEASE”是不够的... - OhadR
我认为这是一个重复的问题:https://dev59.com/0Wkv5IYBdhLWcg3wwTdm - OhadR
似乎在这里曾经暴露了同样的问题:https://discuss.gradle.org/t/how-to-exclude-parent-poms-from-dependency-resolution-for-maven-artifact/5988,但我还没有找到合适的解决方案。 - Borja Gorriz
这也是同样的问题,但不知道如何解决:https://discuss.gradle.org/t/how-to-ignore-parent-pom-for-dependency-resolution/6155 - Borja Gorriz
你应该在那里放置一个字面版本,而不是使用 RELEASE,例如 3.2.6 - khmarbaise
显示剩余6条评论
1个回答

0
我会按照以下步骤进行:
  • 从您的Artifactory下载projectB的jar和pom文件。
  • 通过将“RELEASE”替换为具体版本以及将projectB的版本标签替换为新内容(例如将版本1.2.3替换为1.2.3-manipulated)来更改pom文件。
  • 上传新的jar和pom文件到您的Artifactory。
  • 从Gradle引用版本1.2.3-manipulated。
据我所知,您不需要更改原始jar文件或其内容,仅更改并重新部署pom文件即可(使用指示您操作的不同版本)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接