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

其中 legacycomplete 是通过 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>

这解决了我的问题。 希望这对遇到类似问题的其他人有所帮助。