当使用货物部署到远程服务器时,我想用货物或专家检查生成的战争是否已按预期过滤了属性文件。
介于两者之间的某个阶段应该针对某些字符串测试属性文件,以便部署或停止部署。
为了达到这个目的,货物内置了吗?答案 0 :(得分:1)
不确定您所指的属性文件是什么,因此我假设您引用了典型的java
*.properties
个文件。
无论如何,我相信您应该使用:maven-enforcer-plugin
并且它的目标是:enforce
因为这是maven执行某些条件的常用方法(插件使用术语:rule
)来实现。
我认为你在这里有更多选择。
选项1
也许你可以使用以下方法检查prio以打包你的战争:
maven-property-plugin
- 目标:read-project-properties
(http://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
和规则:requireProperty
(http://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
顺便说一下。我很想知道为什么有人想要检查每个部署的一些属性?您的输入(您过滤的属性文件)是动态生成/更改的吗?否则,一旦你检查它,我怀疑你需要它。