在maven 2编译期间设置java系统属性?

时间:2012-03-14 17:46:24

标签: maven maven-2

我有一个maven配置文件,并希望设置一个属性,该属性稍后在java中按System.getProperty(..)提供:

<profile>
  <id>local-dev</id>
  <properties>
    <my.comp.my.prop>myValue</my.comp.my.prop>
  </properties>
</profile>

我希望System.getProperty("my.comp.my.prop")"myValue",但它是null .. 我该如何正确设置? :)

Thansk!

2 个答案:

答案 0 :(得分:10)

properties-maven-plugin插件可以帮助您完成您正在寻找的内容:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
        <execution>
            <goals>
                <goal>set-system-properties</goal>
            </goals>
            <configuration>
                <properties>
                    <property>
                        <name>my.property.name</name>
                        <value>my.property.value</value>
                    </property>
                </properties>
            </configuration>
        </execution>
    </executions>
</plugin>

答案 1 :(得分:1)

maven无法设置应用程序可以在运行时从环境中访问的属性。

相反,您可以使用maven在构建期间更新代码库中的属性文件,然后您的应用程序可以在运行时读取该文件。可以根据配置文件设置不同的属性值,从而允许应用程序根据需要使用不同的值。

或者,您可以手动调用在环境中设置所需属性的应用程序(maven外部)。