maven-3 - 无法让 maven-assembly-plugin 打包测试
问题描述
我想生成一个包含我的测试类和测试范围依赖项的胖/独立 jar。使用 maven-jar-plugin,我可以创建一个包含我的测试类但不包含依赖项的 jar。阅读互联网,似乎解决方案是将 maven-jar-plugin 与 maven-assembly-plugin 结合起来。
我尝试按照这些说明https://jitblog.net/build-maven-standalone-tests/但没有成功。这是我的问题的重现:https ://github.com/yanakad/commons-compress-test
- 跑
mvn clean package
- 预期:target/fatJar.jar 将包含 SnakeYaml 和 TestClass
- 观察到:SnakeYaml 确实存在,但 TestClass 不存在
我的 Maven 版本是Apache Maven 3.6.0
看一下maven的执行,好像
`[INFO] --- maven-assembly-plugin:3.2.0:single (fat-testjar) @ compress-test ---`
is run before
`[INFO] --- maven-jar-plugin:3.2.0:test-jar (default) @ compress-test ---`
不确定这是原因还是红鲱鱼,或者如何解决......任何见解都非常感谢
解决方案
所以它确实是一个愚蠢的错误,但离开这里以防它帮助别人
maven-jar-plugin
并maven-assembly-plugin
在相同的构建阶段运行。Maven 显然按照文件的词法顺序执行插件。因此,程序集插件在 jar 插件之前运行的事实实际上是问题所在。解决方案是重新排序 pom.xml 文件中的插件,使其maven-jar-plugin
出现在之前maven-assembly-plugin
推荐阅读
- java - 您可以为每个线程(用于测试)创建一个不同的 Hibernate 内存数据库吗?
- highcharts - 在下载的 Highcharts 副本上,在获得许可之前是否禁用自定义?
- html - 为什么
有一个奇怪的黑色顶部边框? - cypress - Cypress.io中如何使用task方法传递数据库连接Url、端口、用户名和密码?
- javascript - 如何在 Ruby On Rails 中自动完成表单域
- python-3.x - 来自带有进程的线程的双端队列
- angular - 无法以反应角度形式定义表单组
- jakarta-ee - 在 Java EE CDI 中,如何始终知道 CDI bean 应该声明为什么范围?
- inno-setup - 无法使用 RegQueryStringValue 从 HKEY_LOCAL_MACHINE 内的注册表中查询值
- brightway - 香肠代理的新活动