通过Docker运行依赖于父项目的Integration Test项目

时间:2018-09-28 10:09:39

标签: java docker integration-testing

我是这个网站的新手(尽管我已经多次使用它来获取信息!)并且已经决定问一个问题,因为我和我的同事们都对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吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

欢迎来到stackoverflow!

Maven尝试从公共Maven存储库下载父pom,但在该库中找不到它。您的公司中是否有私有Maven存储库,并且是否将父pom上传到该私有存储库?

如果是,只需将您的maven settings.xml复制到映像中。在该settings.xml中,您应该配置您的私有存储库。