我正在使用Maven 3.0.3。我需要在腳本中定義一個變量(「env」)。我在我的POM一個<profiles>
部分中,我每<profile>
元素定義變量...默認激活配置文件
<profile>
<id>qa</id>
<properties>
<env>qa</env>
...
</properties>
</profile>
在我的pom.xml中,我該如何啓動情景只有在通過「-P」沒有指定命令行選項(並因此設置變量,如果它沒有定義)?我試過下面,
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>env</name>
<value>dev</value>
</property>
</activation>
<properties>
<url>http://localhost:8080/manager</url>
<server>nnadbmon-dev-tomcat</server>
</properties>
</profile>
但在運行命令「MVN編譯」失敗,因爲執法者的插件我設置需要我定義「ENV」變量。下面是我爲我的實施者插件運行代碼...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>env</property>
<message>Environment missing. This should be either dev, qa, or prod, specified as part of the profile (pass this as a parameter after -P).</message>
<regex>^(dev|qa|production)$</regex>
<regexMessage>Incorrect environment. Expecting one of dev, qa, or prod.</regexMessage>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
目前尚不清楚你想要什麼。你想只提供'env'屬性的默認值嗎? – bmargulies
是的,我想爲env屬性提供默認值。 – Dave
請發佈您的執行者配置。實際上,您沒有定義'env'屬性。如果這樣的屬性恰好存在並具有一定的價值,您只需設置一個配置文件即可運行。您可以使用其他值將默認env屬性添加到properties元素。 – bmargulies