gpt4 book ai didi

java - 为什么 Maven 在生产构建中使用测试资源?

转载 作者:行者123 更新时间:2023-11-30 11:51:51 27 4
gpt4 key购买 nike

在一个 Maven 项目中,我有几个模块,其中只有一个用于单元测试的 persitence.xml

src/test/resources/META-INF/persistence.xml

如果我使用“包”构建项目,(单元测试)persistence.xml 将被复制到 jar 文件中。

创建的工件 (jar) 不应包含任何 persistence.xml,因为它已包含在包含多个模块的 war 文件中。

poms 非常小并且没有配置插件,一切都应该是默认行为。

  • 我做错了什么?
  • 是否有任何文档可以解释这种影响?

最佳答案

当您使用调试标志运行 Maven 时,即 mvn -X ... 您是否看到任何消息表明来自 src/test 的文件正在被复制?如果是这样,您可能需要检查执行此 Activity 的 Maven 目标。

此外,您可能希望在 Maven 构建之后检查项目/模块的 target/classestarget/test-classes 目录的内容。假设模块有一个jar包,maven-jar-plugin仅获取项目输出目录的内容,即 target/classes${project.build.outputDirectory},同时小心避开项目的测试输出目录,即 target/test-classes${project.build.testOutputDirectory}。从 mvn -X ... 的输出中也可以看出这一点。

最后,您可能想要检查本地 Maven 存储库的内容以查找创建的 jar 文件。您的 maven-war-plugin 可能会用于创建 WAR 文件,可能会从本地存储库中选择一个较旧且不正确的 JAR 版本,其中捆绑了测试持久性。

关于java - 为什么 Maven 在生产构建中使用测试资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7207178/

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