我正在使用maven项目。我想从属性文件中读取我的版本号,并将此版本变量访问到我的pom.xml中,而不是每次都在pom.xml中的17.3-SNAPSHOT中更新。因此,当我想在特定的开发sprint中更新我的版本时,更改应该只在属性文件中的版本号属性中,并且能够使用更新的版本构建jar文件。所以我想在外部属性文件中创建一个版本配置变量 (例如:/main/resources/version_config.properties)并在pom.xml中为构建过程访问它。
<dependency>
<group Id>x.x.x</group Id>
<artifact Id>maven-model</artifact Id>
<version>2.0</version>
</dependency>
而不是在版本标记之间使用上面的版本值(2.0),我想从属性文件名称xxx.properties获取此值(属性如,version.config.value = 2.0) 我尝试了上述解决方案。可以提供任何帮助吗?
答案 0 :(得分:0)
我建议您在特定的Maven项目中定义应用程序的版本,您可以将其用作父Maven项目。
来自Maven documentation "Introduction to the POM" (Example 5):
示例5
情景
再次给出以前的原始神器POM,
com.mycompany.app:my-app:1's POM
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1</version> </project>
com.mycompany.app:my-module:1's POM
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-module</artifactId> <version>1</version> </project>
和这个目录结构
. |-- my-module | `-- pom.xml `-- parent `-- pom.xml
解决方案
要同时执行项目继承和聚合,您只需要应用 这三条规则。
com.mycompany.app:my-app:1's POM
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1</version> <packaging>pom</packaging> <modules> <module>../my-module</module> </modules> </project>
com.mycompany.app:my-module:1's POM
<project> <parent> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1</version> <relativePath>../parent/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>my-module</artifactId> </project>
注意:配置文件继承与POM本身使用的继承策略相同。