我想在maven pom文件中定义一个属性的默认值。但是,开发人员应该能够使用相同名称的环境变量覆盖它,如果在mvn命令行中指定了相同的属性,则应该覆盖它。
我该怎么做?
答案 0 :(得分:4)
我认为您可以做的最好的事情是定义属性的默认值,如果在命令行中指定了相同的属性,则可以覆盖该属性。
此配置已在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
答案 1 :(得分:0)