我是这个网站的新手(尽管我已经多次使用它来获取信息!)并且决定提出一个问题,因为我和我的同事都对 Docker 很陌生,因为他们对这项技术还很陌生。
我有一个用 Java 编写的集成测试项目,它测试系统的各个部分。我已经为通过运行运行的项目设置了 Maven 目标:
mvn clean verify -P integraion-test
从命令行运行时效果很好,但我们希望通过使用 Docker 将其容器化来扩展该进程。问题是集成测试项目依赖于项目中尝试测试的一些 jar,例如 DAO 和 API 相关的东西。在我的 POM.xml 中,我有
<parent>
<groupId>com.fleet</groupId>
<artifactId>fleet-parent</artifactId>
<version>1.0.0</version>
</parent>
这将从父级中拉取依赖项,以便它们可以在集成测试项目中使用。
但是,当我使用构建我的 dockerfile
docker build -t integration-tests .
我收到以下错误:
The project com.kinesisfleet.integration:running-integration-tests:0.1 (/integration-test/pom.xml) has 1 error [ERROR] Non-resolvable parent POM for com.fleet.integration:running-integration-tests:0.1: Could not find artifact com.fleet:fleet-parent:pom:1.0.0 in central (https://repo.maven.apache.org/maven2) and 'parent.relativePath' points at wrong local POM.
这是我的 Dockerfile:
FROM maven
ADD . /integration-test
WORKDIR /integration-test
RUN mvn clean install
CMD mvn verify -P integration-test
是否有办法将父级的 jar 放入我的集成测试项目中以便可以使用它们?
我可以使用 COPY 命令从项目中的本地存储库复制 jar 吗?
如有任何帮助,我们将不胜感激。
最佳答案
欢迎来到 stackoverflow!
Maven 尝试从公共(public) maven-repository 下载parent-pom,但在那里找不到它。您的公司是否有私有(private) maven 存储库,并且您是否将parent-pom 上传到该私有(private)存储库?
如果是,只需将您的 Maven settings.xml 复制到您的镜像中。在该 settings.xml 中,您应该配置您的私有(private)存储库。
关于java - 通过 Docker 运行依赖于父项目的集成测试项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553042/