Search code examples
javaeclipsemavenmaven-3tycho

Replace snapshot with qualifier tycho


I'm building my eclipse plugin by using Tycho(0.19).

In MENIFEST.MF My plugin ID is 1.0.0.qualifier, In pom file for same plgugin there is no version because master pom has version 1.0.0-SNAPSHOT (Even I tried to put version in plugin also but same result)

When I ran the build I'm getting my plugin as PLUGIN_NAME.1.0.0.SNAPSHOT.jar

Ques: Why in build jar file SNAPSHOT is not replacing with timestamp ?. What I'm missing..?


Master 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>

Plugin 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>

Console Output

[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] 

Solution

  • The jar file name is controlled by finalName. If you take a look inside the Manifest file in this jar, it will show the correct qualified version.

    If you create a p2 repository with your plugins, they will contain the correct filenames.

    From a maven point of view, the coordinates must match the POM and therefore the version is still -SNAPSHOT.