如何在 Maven/Tycho 中获取当前构建版本
How to get the current build version in Maven/Tycho
我读到 ${project.version}
属性 应该用于获取项目的 完整版本 。
但是如果我在构建中使用这个 属性 将当前构建的版本传递给外部构建过程,它的值总是 1.0.0-SNAPSHOT
我需要像 1.0.0-20160220-1234
.调用外部构建步骤的阶段是“package”。
tycho-packaging-plugin
配置为生成这样的时间戳:
<configuration>
<format>yyyyMMdd-HHmm</format>
</configuration>
并且生成的工件在 versions/names
中确实有时间戳
我将 Maven 3.3.3 与 Eclipse Tycho 0.24 一起使用,但是,对于以前版本的 Tycho,行为是相同的。不确定 Tycho 在这方面的行为是否与普通 Maven 不同。
版本是 运行 和
mvn clean verify
在master pom的目录下。
我使用它的实际项目是 Extras for Eclipse. The external build step is invoked in line 129 of the 'repository' child pom。
我也用过上述子pom中的echo插件,诊断问题是这样的:
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>maven-echo-plugin</artifactId>
<version>0.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>echo</goal>
</goals>
</execution>
</executions>
<configuration>
<echos>
<echo>actual version: ${project.version}</echo>
</echos>
</configuration>
</plugin>
输出与外部构建接收的相同:1.0.0-SNAPSHOT
。
我需要做什么或我需要使用哪个 属性 来获得当前构建的合格版本?
根据我的理解,${project.version}
属性 应该包含合格版本,例如1.0.0-20160218-1234
。但要么 Maven/Tycho 中存在错误,要么我的理解完全错误。如果有人能澄清这一点,我会很高兴。
然而,我发现 ${qualifiedVersion}
属性 是由 tycho-packaging:build-qualifier mojo 设置的。这个 属性 持有期望值。
请注意,即使文档说明
is assigned to the project property qualifiedVersion
无法通过 ${project.qualifiedVersion}
访问 属性。它需要被引用为 ${qualifiedVersion}
.
我读到 ${project.version}
属性 应该用于获取项目的 完整版本 。
但是如果我在构建中使用这个 属性 将当前构建的版本传递给外部构建过程,它的值总是 1.0.0-SNAPSHOT
我需要像 1.0.0-20160220-1234
.调用外部构建步骤的阶段是“package”。
tycho-packaging-plugin
配置为生成这样的时间戳:
<configuration>
<format>yyyyMMdd-HHmm</format>
</configuration>
并且生成的工件在 versions/names
中确实有时间戳我将 Maven 3.3.3 与 Eclipse Tycho 0.24 一起使用,但是,对于以前版本的 Tycho,行为是相同的。不确定 Tycho 在这方面的行为是否与普通 Maven 不同。
版本是 运行 和
mvn clean verify
在master pom的目录下。
我使用它的实际项目是 Extras for Eclipse. The external build step is invoked in line 129 of the 'repository' child pom。
我也用过上述子pom中的echo插件,诊断问题是这样的:
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>maven-echo-plugin</artifactId>
<version>0.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>echo</goal>
</goals>
</execution>
</executions>
<configuration>
<echos>
<echo>actual version: ${project.version}</echo>
</echos>
</configuration>
</plugin>
输出与外部构建接收的相同:1.0.0-SNAPSHOT
。
我需要做什么或我需要使用哪个 属性 来获得当前构建的合格版本?
根据我的理解,${project.version}
属性 应该包含合格版本,例如1.0.0-20160218-1234
。但要么 Maven/Tycho 中存在错误,要么我的理解完全错误。如果有人能澄清这一点,我会很高兴。
然而,我发现 ${qualifiedVersion}
属性 是由 tycho-packaging:build-qualifier mojo 设置的。这个 属性 持有期望值。
请注意,即使文档说明
is assigned to the project property
qualifiedVersion
无法通过 ${project.qualifiedVersion}
访问 属性。它需要被引用为 ${qualifiedVersion}
.