blob: c365dde80b3a8500218095aeee8c12b04c31af76 [file] [log] [blame]
<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>org.eclipse.skills</groupId>
<artifactId>org.eclipse.skills.releng</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<!-- used plugin versions -->
<tycho.version>1.5.0</tycho.version>
<tycho.extras.version>${tycho.version}</tycho.extras.version>
<maven.compiler.version>3.6.1</maven.compiler.version>
<maven.javadoc.version>2.9.1</maven.javadoc.version>
<jacoco.version>0.8.6</jacoco.version>
<eclipse.jarsigner.version>1.1.3</eclipse.jarsigner.version>
<maven.buildhelper.version>1.9.1</maven.buildhelper.version>
<maven.pmd.version>3.13.0</maven.pmd.version>
<maven.spotbugs.version>4.1.4</maven.spotbugs.version>
<maven.checkstyle.version>3.1.1</maven.checkstyle.version>
<!-- build parameters -->
<compiler.compliance>1.8</compiler.compliance>
<jacoco.report.path>../../coverage-report/jacoco.exec</jacoco.report.path>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<pluginRepositories>
<pluginRepository>
<id>cbi</id>
<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
</pluginRepository>
<pluginRepository>
<id>nexus</id>
<url>https://repo.eclipse.org/content/repositories/maven_central/</url>
</pluginRepository>
</pluginRepositories>
<modules>
<!-- plugins -->
<module>../../plugins/org.eclipse.skills</module>
<module>../../plugins/org.eclipse.skills.dependencies</module>
<module>../../plugins/org.eclipse.skills.ui.questeditor</module>
<!-- features -->
<module>../../features/org.eclipse.skills.feature</module>
<module>../../features/org.eclipse.skills.sdk.feature</module>
<!-- tests -->
<module>../../tests/org.eclipse.skills.test</module>
<module>../../tests/org.eclipse.skills.dependencies.test</module>
<!-- releng -->
<module>../org.eclipse.skills.releng.target</module>
<module>../org.eclipse.skills.releng.p2</module>
<module>../org.eclipse.skills.releng.coverage</module>
</modules>
<build>
<plugins>
<!-- require minimum maven version -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.6.0</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- enable PMD code analysis -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven.pmd.version}</version>
<configuration>
<linkXRef>false</linkXRef>
<excludeRoots>
<excludeRoot>src-gen</excludeRoot>
</excludeRoots>
<rulesets>../../releng/org.eclipse.skills.releng/pmd/pmd_rules.xml</rulesets>
</configuration>
<executions>
<execution>
<id>pmd-integration</id>
<phase>verify</phase>
<goals>
<goal>pmd</goal>
<goal>cpd</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- enable checkstyle code analysis -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven.checkstyle.version}</version>
<configuration>
<configLocation>../../releng/org.eclipse.skills.releng/checkstyle/checkstyle_rules.xml</configLocation>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<id>checkstyle-integration</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- enable spotbugs code analysis -->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${maven.spotbugs.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
<fork>false</fork>
</configuration>
<executions>
<execution>
<id>spotbugs-integration</id>
<phase>verify</phase>
<goals>
<goal>spotbugs</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- enable JaCoCo code coverage -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<output>file</output>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- enable tycho build extension -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho.version}</version>
<extensions>true</extensions>
</plugin>
<!-- set target platform for build -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<target>
<artifact>
<groupId>org.eclipse.skills</groupId>
<artifactId>org.eclipse.skills.releng.target</artifactId>
<version>0.1.0-SNAPSHOT</version>
</artifact>
</target>
<resolver>p2</resolver>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>aarch64</arch>
</environment>
<environment>
<os>macosx</os>
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
<!-- set compiler options -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<source>${compiler.compliance}</source>
<target>${compiler.compliance}</target>
</configuration>
</plugin>
<!-- enable pom version updates: to update execute goal "tycho.versions:update-pom" -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-versions-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<!-- timestamps based on the latest git commit -->
<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>
</dependencies>
<configuration>
<timestampProvider>jgit</timestampProvider>
<jgit.dirtyWorkingTree>ignore</jgit.dirtyWorkingTree>
<jgit.ignore>
pom.xml
</jgit.ignore>
<format>${build-prefix}yyyyMMddHHmm</format>
</configuration>
</plugin>
<!-- enable source feature generation -->
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-source-feature-plugin</artifactId>
<version>${tycho.extras.version}</version>
<executions>
<execution>
<id>source-feature</id>
<phase>package</phase>
<goals>
<goal>source-feature</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>plugin-source</id>
<goals>
<goal>plugin-source</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>attached-p2-metadata</id>
<phase>package</phase>
<goals>
<goal>p2-metadata</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>local</id>
</profile>
<profile>
<!-- by default set build qualifier to "I" -->
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>!build-prefix</name>
</property>
</activation>
<properties>
<build-prefix>'I'</build-prefix>
</properties>
</profile>
<profile>
<!-- apply filter when filter file exists -->
<id>auto-spotbugs-exclude</id>
<activation>
<file>
<exists>.settings/spotbugs-exclude.xml</exists>
</file>
</activation>
<build>
<plugins>
<!-- enable spotbugs exclude filter -->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${maven.spotbugs.version}</version>
<configuration>
<excludeFilterFile>.settings/spotbugs-exclude.xml</excludeFilterFile>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sign</id>
<build>
<plugins>
<!-- enable jar signing -->
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-jarsigner-plugin</artifactId>
<version>${eclipse.jarsigner.version}</version>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>