2011-06-21 60 views
1

目前我正在使用Maven做java項目。在IDE中運行使用netbeans或eclip與VM選項(-Djava.security.policy = security_policy.txt)設置沒有任何問題。如何運行虛擬機測試單元選項

但現在我想運行沒有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但它解決了,當我在VM選項把-Djava.security.policy=security_policy.txt

所以我的問題是...如何運行使用命令提示符包括安全選項或簡短的問題...如何避免AccessControlException?

預先感謝

回答

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中傳遞到您的單元測試。