gpt4 book ai didi

java - 如何在不运行的情况下将测试类打包到jar中?

转载 作者:搜寻专家 更新时间:2023-10-31 19:47:09 26 4
gpt4 key购买 nike

我正在努力将我的测试类包含到 jar 包中,但没有运行它们。经过一番谷歌搜索后,我尝试了 mvn package -DskipTests,但我的测试类根本没有添加到 jar 中。

有什么想法吗?

最佳答案

如果您遵循 Maven 约定,那么您的测试类位于 src/test/java 下。maven 从不将测试源子目录的内容打包到工件中。

你有(至少......)3个备选方案:

用“正常”源进行测试

如果您真的想要将它们打包(为什么?),那么您应该将测试类放在 src/main/java 下,它们将被视为普通源,它们的编译类打包到工件中(通常是*.jar)

你可能会遇到各种各样的问题。例如,您的工件将对 junit 具有编译范围的依赖性,这可能会干扰使用您的 jar 的其他模块。

此外,您可能必须配置运行测试的 Maven 插件,以便在执行此操作时了解您的测试类(也就是说,如果您确实希望将测试作为构建的一部分运行)。例如 surefire 和 failsafe 插件。

配置 maven jar 插件以构建测试 jar

参见 maven jar plugin documentation .他们甚至有一个标题为“如何创建包含测试类的 jar”的部分 - 那里的说明会将您的测试打包到一个单独的 jar 文件中(这可能是一个更好的主意)。

直接使用程序集插件以您的方式创建 jar

你可以disable the default execution of the jar plugin而是添加 assembly plugin 的执行到打包阶段创建一个jar。你需要写一个 assembly descriptor为此(并不像上面的链接那样复杂)。这将使您可以完全控制生成的 jar 中包含的内容。最好从复制 predefined assemblies 之一开始

关于java - 如何在不运行的情况下将测试类打包到jar中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16375489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com