如何使用VM选项运行测试单元

时间:2011-06-21 04:57:27

标签: java maven

目前我正在使用Maven进行java项目。在IDE中使用带有VM选项(-Djava.security.policy = security_policy.txt)设置的netbeans或eclips运行没有问题。

但现在我想在没有ECLIPS / NETBEANS的情况下运行并尝试mvn test并发现此错误。

java.security.AccessControlException: access denied (java.io.FilePermission D:\Tecforte\LR4\branches\Prototype\LR_V4\Collector\.\config\logging.proper
ties read)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
        at java.security.AccessController.checkPermission(AccessController.java:546)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:871)

我已经在Eclips中遇到过这个问题,但是当我将-Djava.security.policy=security_policy.txt放入VM选项时它就解决了。

所以我的问题是......如何使用命令提示符运行以包含安全选项或简短问题...如何避免AccessControlException?

提前致谢

1 个答案:

答案 0 :(得分:2)

请参阅systemPropertyVariables(或systemPropertiesFiles),可以在Maven测试插件配置中设置。

示例:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.9</version>
    <configuration>
        <systemPropertyVariables>
            <someProperty>someValue</someProperty>
        </systemPropertyVariables>
    </configuration>
</plugin>

这会将系统属性someProperty = someValue传递给您的单元测试。