Maven:如何在生命周期阶段强制执行属性包含?

Maven:如何在生命周期阶段强制执行属性包含?,maven,maven-2,properties,Maven,Maven 2,Properties,我使用的是Maven 3.0.3。如果有人运行包含“验证”阶段的Maven任务,我希望确保定义了属性“tomcat.manager.url”,如果没有定义,则抛出错误。但是,如果有人没有运行包含verify(例如mvn test)的命令,我不想抛出任何错误 我该怎么做 谢谢,-Dave您可以使用需要设置插件的规则,将enforcer插件()设置为在“验证”阶段执行,配置如下所示: <build> <plugins> <plugin>

我使用的是Maven 3.0.3。如果有人运行包含“验证”阶段的Maven任务,我希望确保定义了属性“tomcat.manager.url”,如果没有定义,则抛出错误。但是,如果有人没有运行包含verify(例如mvn test)的命令,我不想抛出任何错误

我该怎么做


谢谢,-Dave

您可以使用需要设置插件的规则,将enforcer插件()设置为在“验证”阶段执行,配置如下所示:

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.0.1</version>
        <executions>
          <execution>
            <id>enforce-property</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>verify</phase>
            <configuration>
              <rules>
                <requireProperty>
                  <property>tomcat.manager.url</property>
                  <message>You must set a tomcat manager url</message>
                </requireProperty>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

org.apache.maven.plugins
maven enforcer插件
1.0.1
强制执行财产
执行
验证
tomcat.manager.url
必须设置tomcat管理器url
真的
由于插件只会在验证阶段执行,因此除非运行到达该阶段的构建,否则不会进行检查