首页 > 解决方案 > Maven 工件未与 pom 文件一起上传

问题描述

我有一个后端多模块 maven 项目,它是在 jenkins 上构建的,带有mvn clean package命令(maven 版本 3.3)。成功构建后,我将两个 maven 子项目上传target/*.jar到私有 nexus(使用Nexus artifact uploader插件)。目标文件夹中的 jar 已正确上传,但 pom 不正确(插件中没有上传 pom 的选项)。

然后我有我的 webapp 项目,我依赖于我的私人关系上的两个工件。它们被找到并下载,但不是 pom。构建 webapp 项目失败,因为两个 jar 的依赖关系没有解析。在构建过程中会打印出警告:

[WARNING] The POM for <groupId>:<submodule-artifactId>:jar:1.0.0 is missing, no dependency information available

这是合理的——我可以在 nexus 存储库中清楚地看到它只有 jar、md5 和 sha 文件。我应该如何构建我的多模块 maven 项目,我只能在我的 webapp 项目中引用子模块?或者我应该手动上传子模块项目 poms 吗?

我愿意将整个后端项目上传到 nexus,但我希望能够仅将子项目作为依赖项添加到我的 webapp。

标签: mavenjenkinsjenkins-pluginsnexus

解决方案


由于您使用的是私有关系,因此您需要在 maven 中指定在哪里查找您的工件。通常这样做的方法是repository在您的 pom.xml 中指定一个配置,如此链接中指定的那样。这将告诉 maven 联系您的私人关系以获取您的工件。


推荐阅读