Skip to main content
Jump to: navigation, search

Difference between revisions of "Tycho/Plugins Explained"

m
(Added tycho-buildtimestamp-jgit)
Line 1: Line 1:
 
{{caution|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.}}
 
{{caution|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 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 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 [http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse-parent/pom.xml eclipse-parent pom] is the base pom file for most Eclipse projects (not including the [http://maven.apache.org/ref/3-LATEST/maven-model-builder/super-pom.html Super POM]).  It contains many plugins from [http://eclipse.org/tycho/ Tycho] and [http://wiki.eclipse.org/CBI 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.
 
The [http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse-parent/pom.xml eclipse-parent pom] is the base pom file for most Eclipse projects (not including the [http://maven.apache.org/ref/3-LATEST/maven-model-builder/super-pom.html Super POM]).  It contains many plugins from [http://eclipse.org/tycho/ Tycho] and [http://wiki.eclipse.org/CBI 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.
Line 161: Line 161:
  
  
==== tycho-compiler-plugin ====
+
== 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
 +
[http://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers Reproducible Version Qualifiers]
 +
[http://dev.eclipse.org/mhonarc/lists/tycho-user/msg04214.html Re: [tycho-user] build-qualifier-aggregator failed: One of setGitDir or setWorkTree must be called]
 +
 
 +
Examples
 +
[http://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers#Configuration_.28just_copy.26paste.21.29 Reproducible Version Qualifiers - Configuratioin]
 +
 
 +
 
 +
====  tycho-compiler-plugin ====
 
Insert Brief Description
 
Insert Brief Description
  

Revision as of 14:00, 1 April 2013

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.

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>

Back to the top