Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse IDE中未读取SystemPropertyVariable_Java_Eclipse_Maven_Junit - Fatal编程技术网

Java 在Eclipse IDE中未读取SystemPropertyVariable

Java 在Eclipse IDE中未读取SystemPropertyVariable,java,eclipse,maven,junit,Java,Eclipse,Maven,Junit,在MaMaven项目中,pom.xml中有如下内容 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <configuration> <systemProp

在MaMaven项目中,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>

org.apache.maven.plugins
maven surefire插件
2.19.1
发展
当然,我在Java代码中使用了这个属性。 然而,我的问题是,如果我在Eclipse中运行测试,那么这个属性不会从pom文件中读取,最后我的“environment”属性保持为空

如果我从控制台添加'-Denvironment=DEV'运行测试,那么就可以了

我的问题是如何配置Eclipse,以便在我从控制台运行它时,它可以看到我的“环境”属性

有人能帮忙吗? 我自己找不到解决办法


谢谢

这是对Maven工作原理的常见误解

Maven的核心定义了一个构建生命周期,本质上是一个告诉它如何过渡到给定阶段的状态机。例如,如果您运行:

mvn test-compile
Maven知道它首先需要经历一系列步骤(状态),然后才能执行
test compile
。考虑到POM的编写方式,这些状态中的每一个都可能有或可能没有Maven将执行的插件。所以本质上,Maven本身不做任何资源复制、编译、测试、打包等工作。所有这些任务都委托给插件

当您将Maven项目导入Eclipse时,出于各种原因,它将提供自己的插件映射。其中一些(比如编译)对于IDE来说是有意义的,它将使用自己的插件来完成这项工作。Eclipse通常不做的其他阶段(如打包)将没有映射,因此没有插件可执行

运行JUnit测试并不是Eclipse通常作为构建的一部分所做的,所以这就是为什么要手动运行JUnit测试(右键单击test class>RunAs>JUnit test)。Eclipse只是忽略了
surefire
插件,因为它使用自己的内部JUnit runner来运行测试,因此它不会从
surefire
插件获取配置

我毫不怀疑这可以在Eclipse中工作,但在撰写本文时,它根本不起作用。你有没有试过IntelliJ

然而,既然有人认为Eclipse总是处于“DEV”模式,那么合适的解决方法是在Eclipse中静态地设置JRE上的系统属性吗

像这样:

窗口>首选项>Java>已安装的JRE>选择您的JRE> 编辑…>默认VM参数:-DDEV


插件似乎是插件的一个内部标签。这意味着这些配置只有在您从jar文件开始运行程序时才有用,而不是从Eclipse。@htpvl,但它可以在IntelliJ IDE中工作:(是的,它可以工作,解决方法对我来说也可以。谢谢:)