Atlassian Bamboo 无法解析与分类器的依赖关系
Atlassian Bamboo Could not resolve dependencies with classifier
我有一个运行良好的多模块 Maven 项目。
使用 maven-jar-plugin 和 maven-install-plugin,组合使用其中一个模块,以产生不同的工件。
当我从 root 运行 mvn install
时,所有模块都已构建并存储在我的本地存储库中,并且包含这些工件之一的模块已成功构建。
现在,我将源代码链接到 Bamboo,创建不同的任务,进行编译、测试、打包和部署。
问题是当我 运行 "install" 任务时,这只是一个简单的 mvn clean install -Pmy-profile -U
它失败并显示以下消息:
Could not resolve dependencies for project my-group:artifact:jar:vers: Failure to find my-group:another-artifact:jar:classifier:vers in http://my-nexus/repository/maven-public/
奇怪的是,所需的工件存在于本地存储库中,但看起来 bamboo 甚至没有尝试使用它。
我尝试启用和禁用本地存储库隔离,但没有任何变化。
我真的不知道现在该做什么,我们将不胜感激。
所以,问题出在 pom 的 classifier
标签上,但让我们更好地解释实际的项目结构:
父 pom 有(除其他外)2 个子项目,如下所示:
myApp
+ artifact1
+ artifact2
artifact1
通过 maven-jar-plugin
生成了几个包,因为由于遗留原因,我们需要从每个 jar 中排除一些 class。因此,结果是
artifact1-legacy.jar
artifact1.jar
其中 legacy
和 complete
是通过 classifier
元素定义的。
现在的问题是:artifact2
依赖于 artifact1-legacy,它被声明为带有 classifier 标签的依赖项,如下所示:
<dependency>
<groupId>my-group</groupId>
<artifactId>artifact1</artifactId>
<classifier>legacy</classifier>
<version>${project.parent.version}</version>
<scope>provided</scope>
</dependency>
尽管此配置可以通过命令行、ide 等完美运行,但不适用于 Atlassian Bamboo。
幸运的是,依赖项是 provided,这意味着它有效地包含在其他地方,所以我通过删除 classifier
标记来修复它,就像这样
<dependency>
<groupId>my-group</groupId>
<artifactId>artifact1</artifactId>
<version>${project.parent.version}</version>
<scope>provided</scope>
</dependency>
这解决了我的问题。
希望这对遇到类似问题的其他人有所帮助。
我有一个运行良好的多模块 Maven 项目。 使用 maven-jar-plugin 和 maven-install-plugin,组合使用其中一个模块,以产生不同的工件。
当我从 root 运行 mvn install
时,所有模块都已构建并存储在我的本地存储库中,并且包含这些工件之一的模块已成功构建。
现在,我将源代码链接到 Bamboo,创建不同的任务,进行编译、测试、打包和部署。
问题是当我 运行 "install" 任务时,这只是一个简单的 mvn clean install -Pmy-profile -U
它失败并显示以下消息:
Could not resolve dependencies for project my-group:artifact:jar:vers: Failure to find my-group:another-artifact:jar:classifier:vers in http://my-nexus/repository/maven-public/
奇怪的是,所需的工件存在于本地存储库中,但看起来 bamboo 甚至没有尝试使用它。
我尝试启用和禁用本地存储库隔离,但没有任何变化。
我真的不知道现在该做什么,我们将不胜感激。
所以,问题出在 pom 的 classifier
标签上,但让我们更好地解释实际的项目结构:
父 pom 有(除其他外)2 个子项目,如下所示:
myApp
+ artifact1
+ artifact2
artifact1
通过 maven-jar-plugin
生成了几个包,因为由于遗留原因,我们需要从每个 jar 中排除一些 class。因此,结果是
artifact1-legacy.jar
artifact1.jar
其中 legacy
和 complete
是通过 classifier
元素定义的。
现在的问题是:artifact2
依赖于 artifact1-legacy,它被声明为带有 classifier 标签的依赖项,如下所示:
<dependency>
<groupId>my-group</groupId>
<artifactId>artifact1</artifactId>
<classifier>legacy</classifier>
<version>${project.parent.version}</version>
<scope>provided</scope>
</dependency>
尽管此配置可以通过命令行、ide 等完美运行,但不适用于 Atlassian Bamboo。
幸运的是,依赖项是 provided,这意味着它有效地包含在其他地方,所以我通过删除 classifier
标记来修复它,就像这样
<dependency>
<groupId>my-group</groupId>
<artifactId>artifact1</artifactId>
<version>${project.parent.version}</version>
<scope>provided</scope>
</dependency>
这解决了我的问题。 希望这对遇到类似问题的其他人有所帮助。