我想在我的maven pom文件中定義propery的默認值。但是,開發人員應該能夠使用同名的環境變量覆蓋它,如果在命令行上指定了相同的屬性爲mvn,則應該覆蓋該環境變量。如何從命令行獲取屬性值,如果不是,則從環境中獲取屬性值 - 默認值?
我該怎麼做?
我想在我的maven pom文件中定義propery的默認值。但是,開發人員應該能夠使用同名的環境變量覆蓋它,如果在命令行上指定了相同的屬性爲mvn,則應該覆蓋該環境變量。如何從命令行獲取屬性值,如果不是,則從環境中獲取屬性值 - 默認值?
我該怎麼做?
我認爲你可以做的最好的是定義一個屬性的默認值,如果在命令行中指定了相同的屬性,它可以被重寫。
該配置已經在maven 2.2.1下測試過。
定義你財產你的POM:
<properties>
<finalname>dropbox</finalname>
</properties>
在POM,例如地方使用它
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.dengjintian.uploader.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>${finalname}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<!-- This will bind assembly:make-assembly to the package phase -->
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
通過命令行覆蓋它:
mvn clean install -Dfinalname=dropboxtmp
是否有可能將環境變量集成到某個地方? – mark
我認爲在maven 2.2.1嘗試幾次後是不可能的。 Maven參考環境變量,例如xxx,通過$ {env.xxx}。你可以通過「export xxx = yyy」來定義它。但是如果你把這樣的變量放在塊中,它可以通過命令行* *覆蓋。 –
就像魅力一樣......我可以從配置元素覆蓋配置文件中的屬性。 –