用限定符tycho替换快照

时间:2014-03-28 12:02:35

标签: java eclipse maven maven-3 tycho

我使用Tycho(0.19)构建我的eclipse插件。

MENIFEST.MF 我的插件ID是1.0.0.qualifier,在相同的plgugin的pom文件中没有版本,因为master pom有版本1.0.0-SNAPSHOT(即使我试图放插件中的版本也有相同的结果)

当我运行构建时,我将我的插件设为PLUGIN_NAME.1.0.0.SNAPSHOT.jar

问题:为什么在构建jar文件中SNAPSHOT没有替换为timestamp?我错过了什么..?


掌握POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>my.group</groupId>
    <artifactId>plugin.releng</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <build>
        <plugins>
              <plugin>
                  <groupId>org.eclipse.tycho</groupId>
                  <artifactId>tycho-maven-plugin</artifactId>
                  <version>${tycho-version}</version>
                  <extensions>true</extensions>
              </plugin>
       </plugins>
    </build>

     ....

</project>

插件POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>my.plugin</artifactId>
  <packaging>eclipse-plugin</packaging>
  <parent>
    <groupId>my.group</groupId>
    <artifactId>plugin.releng</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>../plugin.releng</relativePath>
  </parent>
</project>

控制台输出

[INFO] --- tycho-packaging-plugin:0.19.0:build-qualifier (default-build-qualifier) @ my.plugin ---
[INFO] The project's OSGi version is 1.0.0.201403281132
[INFO] 
[INFO] --- tycho-packaging-plugin:0.19.0:validate-id (default-validate-id) @ my.plugin ---
[INFO] 
[INFO] --- tycho-packaging-plugin:0.19.0:validate-version (default-validate-version) @ my.plugin ---
[INFO] 

2 个答案:

答案 0 :(得分:1)

jar文件名由finalName控制。如果您查看此jar中的Manifest文件,它将显示正确的合格版本。

如果使用插件创建p2存储库,它们将包含正确的文件名。

从maven的角度来看,坐标必须与POM匹配,因此版本仍为-SNAPSHOT。

答案 1 :(得分:0)

我相信@blackbuild是正确的。

运行maven包以创建jar版本。 SNAPSHOT版本将如下所示:

  • org.XXX-1.0.0-SNAPSHOT.jar

但是,当您将SNAPSHOT部署到存储库时,maven将设置版本号。它在存储库中看起来像这样:

  • org.XXX-1.0.0-20121231.173602-4.jar

请注意,maven部署将单词SNAPSHOT翻译为版本。 见http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html