我已经读过应该使用${project.version}
属性来获取项目的完整版。
但是如果我在构建中使用此属性将当前构建的版本传递给外部构建过程,则其值始终为1.0.0-SNAPSHOT
,我需要1.0.0-20160220-1234
之类的内容。调用外部构建步骤的阶段是“包”。
tycho-packaging-plugin
配置为生成如下所示的时间戳:
<configuration>
<format>yyyyMMdd-HHmm</format>
</configuration>
结果工件在版本/名称
中确实有时间戳我使用Maven 3.3.3和Eclipse Tycho 0.24,然而,对于以前版本的Tycho,行为是相同的。不确定Tycho在这方面的行为是否与普通Maven不同。
使用
运行构建mvn clean verify
在主pom的目录中。
我使用它的实际项目是Extras for Eclipse。外部构建步骤被调用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
。
我需要做什么或需要使用哪些属性来获取当前版本的合格版本?
答案 0 :(得分:2)
根据我的理解,${project.version}
属性应该包含限定版本,例如1.0.0-20160218-1234
。但要么是Maven / Tycho中有一个错误,要么我的理解是完全错误的。如果有人能澄清这一点,我会很高兴。
但是,我找到了由tycho-packaging:build-qualifier mojo设置的${qualifiedVersion}
属性。此属性保留预期值。
请注意,即使文档说明
已分配给项目属性
qualifiedVersion
无法通过${project.qualifiedVersion}
访问该媒体资源。它需要引用为${qualifiedVersion}
。