从属性文件中读取自定义版本配置属性,并在pom.xml中访问它

时间:2017-04-10 07:11:46

标签: maven

我正在使用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)  我尝试了上述解决方案。可以提供任何帮助吗?

1 个答案:

答案 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本身使用的继承策略相同。