使用所有Karate依赖项创建测试jar包

5
我有以下项目结构:
  • src/test/java

没有src/main文件夹。

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

  • maven-jar-plugin:它生成测试jar文件,但依赖关系不包含在该jar文件中
  • maven-shade-plugin:此插件生成没有测试后缀的jar文件,并在生成的jar中包含所有依赖项。
请提供建议:
如何生成带有所有解压的依赖项的“tests” jar文件。 或者,在这种情况下如何生成jar文件,其中包括src/test/java文件夹下的所有类以及测试类所需的所有依赖项。

1
你想用生成的jar文件做什么用途? - J Fabian Meier
只需将其作为独立的jar文件使用,然后在docker容器中运行它。 - user3531900
1
  1. 为什么要把代码放在src/test/java而不是src/main/java中?
  2. 为什么需要解压其他JAR文件?
- J Fabian Meier
1
如果您需要将测试代码打包成jar文件,则将其放入“main”文件夹中会更有意义。最终,考虑添加另一个“test-”模块并将测试代码放在那里。这样做比打包测试代码更加简单明了。 - Daniele
2
实际上,该项目只有Karate测试。因此,它们位于src/test/java下... - user3531900
1个回答

1

是的,代码放在src/test/java下是Karate测试的典型方式。除非你通过访问Spring Boot控制器来启动测试,否则不能将其放在src/test/main下。然后,在Docker容器中,您可以从正在运行的Spring Boot应用程序启动测试。这非常不标准,我不建议这样做。

相反,我建议使用Maven docker镜像开始,并构建自己的镜像,该镜像知道如何将测试文件(未解压缩)复制到镜像中,然后您就不需要将其全部打包成.jar文件。我在这里提供了一个示例(https://github.com/djangofan/karate-test-prime-example),完整地处理了docker退出码

Karate网站上有一些关于制作独立的karate-jar的文档,但是有关如何执行此操作的具体信息很少。如果您知道如何执行此操作,则可以使用它。不过,这比我上面给出的Docker示例更难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接