- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 ma Maven 项目中,我的 pom.xml 中有类似下面的内容
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<environment>DEV</environment>
</systemPropertyVariables>
</configuration>
</plugin>
当然,我在 Java 代码中使用了这个属性。但是我的问题是,如果我在 Eclipse 中运行测试,则不会从 pom 文件中读取此属性,最终我的“环境”属性保持为空。
如果我从控制台运行测试并添加“-Denvironment=DEV”,那么就可以了。
我的问题是如何配置 Eclipse,以便它在我从控制台运行它时看到我的“环境”属性?
有人可以帮忙吗?我自己找不到解决方案...
谢谢
最佳答案
这是对 Maven 工作方式的常见误解。
Maven 的核心定义了构建生命周期,本质上是一个状态机,告诉它如何过渡到给定阶段。例如,如果您运行:
mvn test-compile
Maven知道它首先需要经过一系列步骤(状态)才能执行test-compile
。考虑到 POM 的编写方式,这些状态中的每一个都可能有或没有 Maven 将执行的附加插件。所以本质上,Maven 本身并不做任何资源复制、编译、测试、打包等工作。所有这些任务都委托(delegate)给插件。
当您将 Maven 项目导入 Eclipse 时,由于各种原因,它将提供自己的插件映射。其中一些(例如编译)对于 IDE 来说是有意义的,它将使用自己的插件来完成这项工作。不属于 Eclipse 通常执行的其他阶段(例如打包)将没有映射,因此没有要执行的插件。
运行 JUnit 测试并不是 Eclipse 在构建过程中通常执行的操作,因此这就是您手动运行 JUnit 测试的原因(右键单击测试类> 运行为 > JUnit 测试)。 Eclipse 简单地忽略 surefire
插件,因为它使用自己的内部 JUnit 运行程序来运行测试,因此它不会从 surefire
获取配置插件。
我毫不怀疑这可以在 Eclipse 中工作,但在撰写本文时,它根本无法在 Eclipse 中工作。您尝试过 IntelliJ 吗?
但是,由于有人可能会认为 Eclipse 始终处于“DEV”模式,因此一种合适的解决方法是在 Eclipse 中静态设置 JRE 上的系统属性吗?
像这样:
Window > Preferences > Java > Installed JREs > select your JRE > Edit... > Default VM arguments: -DDEV
关于java - Eclipse IDE 中未读取 SystemPropertyVariables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53185804/
在 ma Maven 项目中,我的 pom.xml 中有类似下面的内容 org.apache.maven.plugins maven-surefire-plugin 2.19
我的 pom.xml 出现以上错误。我可以使用 maven 成功构建项目,但 intellij 给出上述错误并在 pom 中以红色显示该部分。波纹管是我在 pom 中的部分。对此有什么想法吗?
您好,我正在开发一个 java maven 项目,我必须在其中的 pom.xml 文件中定义一些变量。 我在我的 pom.xml 文件中定义了一个变量,如下所示。 org.a
我的资源文件位于文件夹 src/test/java/resources/framework.properties 中,内容如下: felix.auto.start.1=\ "file:${test.a
我是一名优秀的程序员,十分优秀!