【问题标题】:Create tests jar with all the Karate dependencies [duplicate]创建具有所有空手道依赖项的测试 jar [重复]
【发布时间】:2019-07-22 13:58:29
【问题描述】:

我有以下项目结构。

  • src/test/java

没有 src/main 文件夹。

src/test/java 文件夹上面包含一些 scala 类以及一些 java 类。当我使用以下插件构建 jar 文件时

  • maven-jar-plugin : 它生成测试 jar 文件,但依赖项不包含在该 jar 文件中
  • maven-shade-plugin : 该插件生成不带tests后缀的jar文件,并在生成的jar中包含所有依赖。

请推荐

如何生成 'tests' jar,其中的所有依赖项都已解包。 要么 在这种情况下如何使用 src/test/java 文件夹下的所有类以及测试类所需的所有依赖项生成 jar 文件

【问题讨论】:

  • 你想要使用生成的 jar 的目的是什么?
  • 只是将其用作独立 jar 并在 docker 容器中运行
  • 1.为什么将代码放入src/test/java 而不是src/main/java? 2. 为什么需要拆开其他罐子?
  • 如果需要将测试代码打包成jar;那么将它放入“主”文件夹会更有意义。最后,考虑添加另一个“test-”模块并将测试代码放在那里。这样做比打包测试代码更简单
  • 其实这个项目只有空手道测试。所以他们在 src/test/java...

标签: java executable-jar karate maven-shade-plugin maven-jar-plugin


【解决方案1】:

是的,src/test/java 下的代码是空手道测试的典型代码。你不能放在src/test/main 下,除非你把东西连接起来运行测试,也许是通过点击一个弹簧启动控制器来启动它们。然后,在您的 Docker 容器中,您可以从正在运行的 spring boot 应用程序启动测试。这是非常不标准的,我不建议这样做。

相反,我会从一个 Maven docker 映像开始,然后构建您自己的映像,该映像知道如何将测试文件(未 jarred)复制到映像中,然后您就不需要全部 .jar 了。我在这里做了一个例子 (https://github.com/djangofan/karate-test-prime-example),正确处理了 docker 退出代码

在空手道网站上有一些用于制作独立 karate-jar 的文档,但关于如何做到这一点的具体文档很少。我敢打赌,如果你知道怎么做,它就会起作用。不过,这比我上面给出的 Docker 示例要困难。

【讨论】:

  • 为你点赞?
猜你喜欢
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
相关资源
最近更新 更多