【问题标题】:How can Eclipse perform a maven build before a junit test to replace variables?Eclipse 如何在 junit 测试之前执行 maven 构建以替换变量?
【发布时间】: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 命令。

标签: java eclipse maven junit


【解决方案1】:

确保您的 Eclipse 已安装 Maven 集成功能/插件(又名“m2e”,请参阅 https://www.eclipse.org/m2e/download/)。当它被安装并且项目被配置为一个 Maven 项目时,它将处理 maven 从命令行执行的构建阶段的一部分,例如替换资源中的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2016-03-09
    • 2018-06-18
    • 1970-01-01
    • 2013-10-10
    • 2016-10-16
    相关资源
    最近更新 更多