Friday 16 May 2014

Add Automatic generated build ID in about dialog using Tycho (Maven)

Follow the following Steps to generate Build-ID Automatically form Tycho:

1. Open your plugin.xml which have org.eclipse.core.runtime.products Extension add or replace following properties.












2. In same plugin open MANIFEST.MF and add following lines.
Bundle-Localization: plugin
This allows you to use plugin.properties

3. Create or open your plugin.properties and add following add your about dialog as below.
productBlurb=Eclipse Platform\n\
\n\
Version: {1}\n\
Build id: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2014. \
..... your thing\n

4. Now create a about.mappings file if you already have change it like below.
0=${buildId}
1=${releaseName}

5. Now open your pom file and add below settings.
<properties>
    <maven .build.timestamp.format="">yyyyMMdd-HHmm</maven>
    <buildid>${maven.build.timestamp}</buildid>
    <releasename>5.0.0 RC0</releasename>
</properties>

<plugins>
  <plugin>
    <groupid>org.apache.maven.plugins</groupid>
    <artifactid>maven-resources-plugin</artifactid>
    <version>2.6</version>
    <executions>
      <execution>
        <id>process-about.mappings</id>
        <phase>prepare-package</phase>
        <configuration>
          <outputDirectory>${project.build.directory}</outputDirectory>
          <overwrite>true</overwrite>
          <resources>
            <resource>
              <directory>${basedir}</directory>
              <includes>
                <include>about.mappings</include>
              </includes>
              <filtering>true</filtering>
            </resource>
          </resources>
        </configuration>
        <goals>
          <goal>copy-resources</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
  <plugin>
    <groupid>org.eclipse.tycho</groupid>
    <artifactid>tycho-packaging-plugin</artifactid>
    <version>${tycho.version}</version>
    <configuration>
      <additionalfilesets>
        <fileset>
          <directory>${project.build.directory}</directory>
          <includes>
            <include>about.mappings</include>
          </includes>
        </fileset>
      </additionalfilesets>
    </configuration>
  </plugin>
</plugins>

6. Run the build now you will get product's about dialog with automatic generated Build-ID.