docker - 如何让我的 Maven Docker 映像在 Nexus 中查找它的依赖项/父项?
问题描述
我正在尝试使用 Maven Docker 映像来构建项目。该项目的 pom 在 Nexus 存储库中有它的父级。当我构建项目时,它说父 pom 无法解析,因为它不会在 Nexus 中查找它。如何使图像在 Nexus 中显示?我可以使用 Maven 安装在我的机器上本地构建相同的项目。
这是我的 Dockerfile 的样子:
FROM maven:3.6.3-amazoncorretto-11
COPY settings.xml /usr/share/maven/ref/
CMD ["mvn","-v"]
解决方案
您应该在设置文件中放置一个部分,告诉它关系存储库在哪里。这是通过服务器和镜像部分完成的,如果您希望覆盖它,也可以在单个 pom 中重复。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<servers>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<mirror>
<id>central</id>
<name>central</name>
<url>http://your-host:8081/repository/maven-group/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
这个例子取自几年前的 sonatype 博客文章,但我认为它仍然有效。
推荐阅读
- javascript - Jasmin 框架中的 Javascript 单元测试
- php - 状态选择字段更改时 Woocommerce Ajax 购物车更新
- javascript - setState 在 currentState 对象上使用扩展运算符
- java - Java Stream IntSummaryStatistics 默认行为
- javascript - 多租户应用程序 - 如何在前端/后端之间传递数据?
- ios - 核心数据:后台更新 NSManagedObjectContext 在保存时不起作用
- python - 数字插值和绘图代码的问题
- pharo - Pharo ZnSecureServer - SSL 异常:接受失败 [代码:-5]
- javascript - 我想将值(php数组)移动到js数组
- php - Wordpress wp_query:按 meta_query 键排序,然后按日期排序(固定/粘性)