maven - 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。
解决方案
由于您使用的是私有关系,因此您需要在 maven 中指定在哪里查找您的工件。通常这样做的方法是repository
在您的 pom.xml 中指定一个配置,如此链接中指定的那样。这将告诉 maven 联系您的私人关系以获取您的工件。
推荐阅读
- docker - 如何删除早于 x 数量的 docker 堆栈
- android - 我的表格布局一直从左边的中心移动,无法找出原因
- javascript - node.js 字体无法正常工作且未显示错误
- laravel - 如何使用 Laravel Eloquent 获取相关城市的国家名称
- java - 如何使用 jdbc 将我的移动应用程序连接到域中的 mysql 数据库?
- django - 如何在实例化期间获取 CharField() 的值?
- jquery - 具有动态时隙的日期时间选择器
- javascript - 从本地(Angular)的响应标头中删除 Content-Security-Policy
- php - PHP `glob()` 多个前缀
- python - 无法读取图像特征 - Python 路径错误