Java Maven-检查配置值并停止处理
我有一个POM文件,其中包含一个属性(在properties部分下),该属性有一个IP值,我们在将其推送到git时使用该IP值Java Maven-检查配置值并停止处理,java,maven,pom.xml,Java,Maven,Pom.xml,我有一个POM文件,其中包含一个属性(在properties部分下),该属性有一个IP值,我们在将其推送到git时使用该IP值 <device.ip>1.2.3.4</device.ip> 1.2.3.4 但是对于我的构建,我需要使用另一个IP值,所以当我开始在新分支上工作时,我应该将它更改为我所需的IP 我希望能够在构建启动时检查变量值并中止它,因为变量值与我需要的不同 也欢迎任何其他解决办法 (我希望我的问题不会因为缺少代码而被降级——这里没有真正需要编写的代码。
<device.ip>1.2.3.4</device.ip>
1.2.3.4
但是对于我的构建,我需要使用另一个IP值,所以当我开始在新分支上工作时,我应该将它更改为我所需的IP
我希望能够在构建启动时检查变量值并中止它,因为变量值与我需要的不同
也欢迎任何其他解决办法
(我希望我的问题不会因为缺少代码而被降级——这里没有真正需要编写的代码。这个场景是不言自明的)
谢谢您的建议。您可以使用支持此类检查的
规则的用法如下所示
[...]
org.apache.maven.plugins
maven enforcer插件
3.0.0-M2
强制执行财产
执行
device.ip
您必须设置device.ip属性!
.*\d.*
device.ip属性包含。。。
真的
[...]
您可以使用支持此类检查的
规则的用法如下所示
[...]
org.apache.maven.plugins
maven enforcer插件
3.0.0-M2
强制执行财产
执行
device.ip
您必须设置device.ip属性!
.*\d.*
device.ip属性包含。。。
真的
[...]
我建议将您的项目拆分为模块
- 模块1包含没有任何配置的代码
- 模块2指模块1,另外包含投入生产的内容。对于多个部署,请为每个部署创建一个附加模块。这就是您的生产属性所在
- 模块3引用模块1(而不是2),包含开发所需的任何内容(如此属性和帮助器类的配置)。对于复杂场景,为每个场景创建一个附加模块李>
这对我很有效 我建议将您的项目分为几个模块
- 模块1包含没有任何配置的代码
- 模块2指模块1,另外包含投入生产的内容。对于多个部署,请为每个部署创建一个附加模块。这就是您的生产属性所在
- 模块3引用模块1(而不是2),包含开发所需的任何内容(如此属性和帮助器类的配置)。对于复杂场景,为每个场景创建一个附加模块李>
这对我很有效 您可以使用AntRun插件检查属性,然后在满足条件时调用Fail任务。你可以使用BuildNumber插件来做到这一点。只需根据您的情况配置您的IP。为什么IP与您的git push相关?@khmarbaise该IP在pom中配置,并且包含生产设备IP。我的工作需要一个开发设备。IP是否可以根据开发和生产环境预测?您可以使用AntRun插件检查属性,然后在满足条件时调用Fail任务。你可以使用BuildNumber插件来做到这一点。只需根据您的情况配置您的IP。为什么IP与您的git push相关?@khmarbaise该IP在pom中配置,并且包含生产设备IP。我的工作需要一个开发设备。IP是否可以根据开发和生产环境进行预测?您建议的插件很好,但最终对我没有多大帮助,因为我必须将我的开发IP设置为regex标记值,而且无论如何,我必须在每次推送之前将其再次修改为生产IP。。。有没有办法解决这个问题?我想应该涉及到一些外部值,比如你建议的插件很好,但最终对我没有多大帮助,因为我必须将我的dev IP设置为regex标记值,而且无论如何,我必须在每次推送之前将其再次修改为生产IP。。。有没有办法解决这个问题?我想应该会涉及到一些外部价值
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M2</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>device.ip</property>
<message>You must set a device.ip property!</message>
<regex>.*\d.*</regex> <!-- Express the value you need. -->
<regexMessage>The device.ip property contain...</regexMessage>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>