我是这个网站的新手(尽管我已经多次使用它来获取信息!)并且已经决定问一个问题,因为我和我的同事们都对Docker感到陌生,就像该技术一样。
我有一个用Java编写的集成测试项目,该项目测试系统的各个部分。我已经为通过运行以下项目运行的项目设置了Maven目标:
mvn clean verify -P集成测试
从命令行运行时此方法工作正常,但希望通过使用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集成测试。
我收到以下错误:
项目com.kinesisfleet.integration:running-integration-tests:0.1(/integration-test/pom.xml)有1个错误 [错误] com.fleet.integration:running-integration-tests:0.1的不可解析父POM:在中央({https://repo.maven.apache.org/maven2)和以下位置找不到工件com.fleet:fleet-parent:pom:1.0.0和“ parent.relativePath”指向错误的本地POM。
这是我的Dockerfile:
FROM专家
ADD。 / integration-test
WORKDIR /集成测试
运行mvn全新安装
CMD mvn验证-P集成测试
是否有将罐子从父级转移到我的集成测试项目中以便可以使用?
我可以使用COPY命令从项目内的本地仓库复制jar吗?
任何帮助将不胜感激。
答案 0 :(得分:0)
欢迎来到stackoverflow!
Maven尝试从公共Maven存储库下载父pom,但在该库中找不到它。您的公司中是否有私有Maven存储库,并且是否将父pom上传到该私有存储库?
如果是,只需将您的maven settings.xml复制到映像中。在该settings.xml中,您应该配置您的私有存储库。