【发布时间】:2016-04-15 11:20:21
【问题描述】:
我对在使用 Maven 时通过命令行为某些单元测试设置属性的正确方法感到困惑。有很多问题(例如Specifying Maven memory parameter without setting MAVEN_OPTS environment variable、Is there a way to pass jvm args via command line to maven?、How to set JVM parameters for Junit Unit Tests?)涉及到这个主题,但没有一个问题有我想要的答案。
我想将属性java.util.logging.config.class 设置为某个值,但我不想设置MAVEN_OPTS 环境变量。
我可以使用以下属性在我的 pom 文件中配置 surefire 插件:
<argLine>-Djava.util.logging.config.class=someClass</argLine>
以便在每次运行测试阶段时设置。
但是,如果我从 pom 文件中删除设置并将以下内容添加到命令行:
mvn package -DargLine="java.util.logging.config.class=someClass"
那么在测试阶段报如下错误,构建失败:
错误:无法找到或加载主类 java.util.logging.config.class=someClass
如果我从命令行运行以下命令:
mvn package -Djava.util.logging.config.class=someClass
那么在开始构建时报以下错误但构建和测试成功:
记录配置类“someClass”失败 java.lang.ClassNotFoundException: someClass
我不太了解这种行为。有人能启发我吗?
【问题讨论】:
标签: java maven properties maven-surefire-plugin