2011-01-28 58 views
6

我有一個定義了一些性能非常簡單的Maven描述:Maven的財產超載

<?xml version="1.0"?> 
<project 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd" 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <properties> 
    <it.port>8080</it.port> 
    </properties> 

</project> 

我可以覆蓋it.port屬性與命令:

$ mvn -Dit.port=8181 verify 

但預期下面的命令不起作用:

$ MAVEN_OPTS="-Dit.port=8181" mvn verify 

這將系統變量傳遞給JVM,但maven拒絕覆蓋thi給予測試(8080)的財產和默認值。原始問題是TeamCity(輸出CI服務器)將系統變量傳遞給MAVEN_OPTS中的JVM,因此屬性覆蓋不起作用。

我可以用MAVEN_OPTS環境變量覆蓋maven屬性嗎?

回答

11

不,你不能。您可以:

  • 在本地計算機上使用的settings.xml指定屬性
  • 項目POM
  • 使用-D在命令行中使用配置文件直接。