Tycho/Plugins Explained

From Eclipsepedia

Jump to: navigation, search
Stop.png
This page is incomplete
Please feel free to continue listing the Tycho plugins found in the eclipse-parent pom. The goal is to provide a complete description of all the components used in the file.


The purpose of this page is to document the various Tycho plugins for Maven and how they are used in the Eclipse build process. This page is meant to be a landing page (cheat sheet) for the plugins and will not necessarily contain the information directly. Most of this information is already available in various forum posts and email threads. This page is merely a centralized location to aggregate (not duplicate) links to and summaries of the information users desire.

The eclipse-parent pom is the base pom file for most Eclipse projects (not including the Super POM). It contains many plugins from Tycho and CBI that are useful in other production environments. As new information and plugins become available we will try to update this page as best as possible.

Contents

Plugins:

eclipse-cbi-plugin

Insert Brief Description

References

Examples

 <build>
    <plugins>
      <plugin>
        ...
      </plugin>
    
      <plugin>
        <groupId>org.eclipse.cbi.maven.plugins</groupId>
        <artifactId>eclipse-cbi-plugin</artifactId>
        <version>1.0.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate-api-build-xml</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>


eclipse-jarsigner-plugin

Insert Brief Description

References

Examples

 <profiles>
    <profile>
      <id>eclipse-sign</id>
      <build>
        <plugins>
          <plguin>
            ...
          </plugin>
          
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>1.0.2</version>
            <executions>
              <execution>
                <id>sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>


target-platform-configuration

Insert Brief Description

References

Examples

 <build>
    <plugins>
      <plugin>
        ...
      </plugin>
    
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <environments>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86</arch>
            </environment>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86</arch>
            </environment>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>macosx</os>
              <ws>cocoa</ws>
              <arch>x86_64</arch>
            </environment>
          </environments>
        </configuration>
      </plugin>
    </plugins>
  </build>
 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
 <profiles>
   <profile>
     <id>eclipse-sign</id>
     <build>
       <plugins>
         <plugin>
           <groupId>org.eclipse.tycho</groupId>
           <artifactId>target-platform-configuration</artifactId>
           <version>${tycho.version}</version>
           <configuration>
             <includePackedArtifacts>true</includePackedArtifacts>
           </configuration>
         </plugin>
       </plugins>
     </build>
   </profile>
 </profiles>


Plugins:

tycho-buildtimestamp-jgit

Use this plugin to generate stable version qualifiers. Instead of creating a version qualifier based on the time of the actual build, the version qualifier is based on the most recent commit. When configured with an associated p2 repository, the same artifact id/version are guaranteed to represent the same artifact contents. The advantage being only those plugins whose contents materially changed are downloaded during a p2 update.

References Reproducible Version Qualifiers Re: [tycho-user build-qualifier-aggregator failed: One of setGitDir or setWorkTree must be called]

Examples Reproducible Version Qualifiers - Configuratioin


tycho-compiler-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>org.eclipse.jdt.core</artifactId>
              <version>${cbi-jdt-version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <showWarnings>true</showWarnings>
            <compilerArguments>
              <inlineJSR/>
              <enableJavadoc/>
              <encoding>${project.build.sourceEncoding}</encoding>
              <proceedOnError/>
              <log>${project.build.directory}/@dot.xml</log>
            </compilerArguments>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
 <profiles>
    <profile>
      ...
    </profile>
    
    <profile>
      <id>bree-libs</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>tycho-compiler-plugin</artifactId>
              <version>${tycho.version}</version>
              <configuration>
                <useJDK>BREE</useJDK>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>


tycho-custom-bundle-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-custom-bundle-plugin</artifactId>
          <version>${tycho-extras.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>


tycho-maven-plugin

Insert Brief Description

References

Examples

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


tycho-p2-director-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-director-plugin</artifactId>
          <version>${tycho.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>


tycho-p2-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <baselineMode>warn</baselineMode>
            <baselineReplace>none</baselineReplace>
            <baselineRepositories>
              <repository>
                <url>${comparator.repo}</url>
              </repository>
            </baselineRepositories>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
 
 <profiles>
    <profile>
      ...
    </profile>
    
    <profile>
      <id>eclipse-sign</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              ...
            </plugin>
          
            <plugin>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>tycho-p2-plugin</artifactId>
              <version>${tycho.version}</version>
              <executions>
                <execution>
                  <id>p2-metadata</id>
                  <goals>
                    <goal>p2-metadata</goal>
                  </goals>
                  <phase>verify</phase>
                </execution>
              </executions>
              <configuration>
                <defaultP2Metadata>false</defaultP2Metadata>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>


tycho-p2-repository-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-repository-plugin</artifactId>
          <version>${tycho.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>


tycho-pack200a-plugin

Insert Brief Description

References

Examples

 <profiles>
    <profile>
      <id>eclipse-sign</id>
      <build>
        <plugins>
          <plguin>
            ...
          </plugin>
          
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho-extras.version}</version>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>


tycho-pack200b-plugin

Insert Brief Description

References

Examples

 <profiles>
    <profile>
      <id>eclipse-sign</id>
      <build>
        <plugins>
          <plguin>
            ...
          </plugin>
          
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho-extras.version}</version>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>


tycho-packaging-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-buildtimestamp-jgit</artifactId>
              <version>${tycho-extras.version}</version>
            </dependency>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-sourceref-jgit</artifactId>
              <version>${tycho-extras.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <strictBinIncludes>false</strictBinIncludes>
            <format>'v'yyyyMMdd-HHmm</format>
            <timestampProvider>jgit</timestampProvider>
            <!--jgit.ignore>
        pom.xml
            </jgit.ignore-->
            <sourceReferences>
              <generate>true</generate>
            </sourceReferences>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>


tycho-source-feature-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-source-feature-plugin</artifactId>
          <version>${tycho-extras.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
 

tycho-source-plugin

Insert Brief Description

References

Examples

 <build>
    <plugins>
      <plugin>
        ...
      </plugin>
    
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <executions>
          <execution>
            <id>plugin-source</id>
            <goals>
              <goal>plugin-source</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-source-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <strictSrcIncludes>false</strictSrcIncludes>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>


tycho-surefire-plugin

Insert Brief Description

References

Examples

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          ...
        </plugin>
    
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-surefire-plugin</artifactId>
          <version>${tycho.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>