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

标签 java maven-2 spring-mvc

在一个 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/

相关文章:

java - Maven 有没有像样的 HTML Junit 报告插件?

java - 在资源处理程序中设置字符编码

java - 如何从 Java Spring MVC 3.0 Webapp 流式传输文本响应

java - 我可以让一个 Maven 配置文件激活另一个吗?

java - 如何在 Spring 4 上参数化数据源属性?

java - 从对象的 HashSet 中检索值

java - Swing 应用程序的任务栏行为

java - SQL 替换与执行插入或更新语句

java - 对另一个流进行流过滤并计数

java - Maven 无法找到插件描述符