在部署/条件部署之前检查war文件

时间:2013-08-13 02:54:25

标签: eclipse maven tomcat cargo

当使用货物部署到远程服务器时,我想用货物或专家检查生成的战争是否已按预期过滤了属性文件。

介于两者之间的某个阶段应该针对某些字符串测试属性文件,以便部署或停止部署。

为了达到这个目的,货物内置了吗?

1 个答案:

答案 0 :(得分:1)

不确定您所指的属性文件是什么,因此我假设您引用了典型的java *.properties个文件。

无论如何,我相信您应该使用:maven-enforcer-plugin并且它的目标是:enforce因为这是maven执行某些条件的常用方法(插件使用术语:rule)来实现。

我认为你在这里有更多选择。

选项1

也许你可以使用以下方法检查prio以打包你的战争:

maven-property-plugin - 目标:read-project-propertieshttp://mojo.codehaus.org/properties-maven-plugin/usage.html

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
      <execution>
        <phase>???</phase>
        <goals>
          <goal>read-project-properties</goal>
        </goals>
        <configuration>
          <files>
            <file>your_file_to_check.properties</file>
          </files>
        </configuration>
      </execution>
    </executions>
  </plugin>

你应该在哪里:

然后转到maven-enforcer-plugin目标:enforce和规则:requirePropertyhttp://maven.apache.org/enforcer/enforcer-rules/requireProperty.html

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.3.1</version>
    <executions>
      <execution>
        <id>enforce-property</id>
        <goals>
          <goal>enforce</goal>
        </goals>
        <configuration>
          <rules>
            <requireProperty>
              <property>your_property_to_check</property>
              <message>You must set a your_property_to_check property!</message>
              <regex>regex</regex>
              <regexMessage>violation txt</regexMessage>
            </requireProperty>               
          </rules>
          <fail>true</fail>
        </configuration>
      </execution>
    </executions>
  </plugin>

其中:

  • your_property_to_check应该替换为真实的
  • regex应该定义

选项2

如果这不可行并且您想要检查war文件中的属性,则可能需要编写自己的rule

这应该不是什么大问题,因为java有拉链读取以及在其标准API中加载的属性文件。要了解如何编写自定义规则,请参阅:http://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html

顺便说一下。我很想知道为什么有人想要检查每个部署的一些属性?您的输入(您过滤的属性文件)是动态生成/更改的吗?否则,一旦你检查它,我怀疑你需要它。