Java 在intellij中运行测试时将属性传递给maven概要文件

Java 在intellij中运行测试时将属性传递给maven概要文件,java,maven,intellij-idea,Java,Maven,Intellij Idea,我有一个maven pom和个人资料。在其中一个配置文件中,我引用了这样一个系统变量 <profile> <id>kasper</id> <properties> <user>${username}</user> </properties> </profile> 卡斯珀 ${username} 当我用-Dusername=kasper调用maven命令行时

我有一个maven pom和个人资料。在其中一个配置文件中,我引用了这样一个系统变量

<profile>
    <id>kasper</id>
    <properties>
        <user>${username}</user>
    </properties>
</profile>

卡斯珀
${username}
当我用-Dusername=kasper调用maven命令行时,一切似乎都很好

问题是,我用IntelliJ导入了这个项目。IntelliJ 13允许通过Maven工具窗口选择要运行的配置文件

当我在运行测试时选择使用这个特定的配置文件时,我似乎找不到如何正确地替换这个属性,也就是说,要真正告诉IntelliJ它必须选择这个或那个用户名来运行maven测试,我尝试了所有的方法,但它似乎没有选择

有人有主意吗

Kasper

查看->工具窗口->Maven项目 然后右键单击所需的阶段,例如,package,它将是上下文菜单中名为 *创建[项目名称]包*


在某些选项卡上,您可以覆盖VM属性、添加配置文件等。

在IntelliJ 14中,maven配置文件不会传递给测试(默认情况下)

您可以通过设置->Maven->运行测试中的一个选项激活此机制,该选项允许您将SystemPropertyVariable传递给单元测试-这应该涵盖您的情况。

好的,我知道了

转到JUnit或TestNG上的Intellij配置(无论您使用哪个)。在VMoptions下。。。您可以像terminal命令一样,将自定义系统属性变量从Maven添加到-ea选项旁边的调试器中


-ea-Dtest.environment=QA

谢谢,这确实奏效了,摆弄了各种各样的选项,但没有想到右键点击那个生命周期的东西。嗯,我想我没有完全理解。当我进行其中一种运行配置时,参数(在我的例子中是测试)我填写的参数确实会被JUnit配置获取,这是我想要的,然后我可以进行调试等等,但是它在应用和不应用时似乎非常挑剔(例如,如果我做了一个新的junit运行配置,我需要重新做maven配置)。maven配置和junit配置之间的链接到底是如何的?@Kasper,不确定这个链接是否存在。你最好再问一个问题;)这应该是正确的答案,因为它具有普遍性并描述了根本原因。在这方面,我还注意到版本14中IDEA行为的变化。我正在使用IntelliJ 2016.1.3,默认情况下启用此选项