【发布时间】:2014-10-01 07:19:07
【问题描述】:
我有一个相当大的 maven 项目,其中包含一些集成测试 (JUnit)。最后,项目将使用 Maven 构建,并且在构建过程中,Maven 将在一些文件中交换一些变量,如 ${project.version.major} 或 ${project.version.minor} 与相应的值。这些值将用于在测试服务器上创建对服务的查找。如果我使用 maven 构建或让 Jenkins 构建它们,则有几十个有效的集成测试。所以我不想更改测试,只是设置以便 Eclipse 使用 maven 构建。
同样的测试也适用于其他开发者。但是它们没有特殊的运行配置,也没有人记得做过任何特别的事情来使它们按应有的方式运行。所以我想这可能是我做错的一件非常基本的事情。
如果我执行mvn clean install,效果会很好。不幸的是,如果我在 Eclipse 中运行测试,它不会交换值,并且测试将失败并出现 NameNotFoundException。测试当前作为 JUnit 测试运行,尽管我在同一个项目中使用小型测试 java 应用程序时遇到了同样的问题。
当我运行 Eclipse 而不是内置编译器时,如何说服 Eclipse 执行 mvn clean install?(或任何其他可行的解决方案)
请 ELI5,我仍在尝试找出 Eclipse
【问题讨论】:
-
为什么要更改这些信息?您是在开发插件还是想要实现什么?
-
创建一个读取版本号的服务。在测试中,模拟服务并返回你想要的。在生产中,使用从文件中读取的具体服务。这对你有用吗?
-
不管其他人会告诉你什么,如果它是你应用程序的一部分,那听起来很可疑。请告诉我们您为什么要这样做
-
@khmarbaise - 这是我们基础设施的一部分。总结:我们总是用相同的版本号调用一些东西,所以这些信息总是被项目的当前版本替换是很重要的。
-
您不能更改 Eclipse 中的构建行为(可能除了编写自定义构建器)。但是您可以通过右键单击“运行方式”菜单中的项目来运行 MVN 命令。