如何在Maven / Tycho

时间:2016-02-20 19:23:54

标签: maven tycho

我已经读过应该使用${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

我需要做什么或需要使用哪些属性来获取当前版本的合格版本?

1 个答案:

答案 0 :(得分:2)

根据我的理解,${project.version}属性应该包含限定版本,例如1.0.0-20160218-1234。但要么是Maven / Tycho中有一个错误,要么我的理解是完全错误的。如果有人能澄清这一点,我会很高兴。

但是,我找到了由tycho-packaging:build-qualifier mojo设置的${qualifiedVersion}属性。此属性保留预期值。

请注意,即使文档说明

  

已分配给项目属性qualifiedVersion

无法通过${project.qualifiedVersion}访问该媒体资源。它需要引用为${qualifiedVersion}