blob: aa4090cbcc0695516aeb537a443489ca9f3f144d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2012, 2020 Eclipse Foundation and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Distribution License v1.0
which accompanies this distribution, and is available at
https://www.eclipse.org/org/documents/edl-v10.php
Contributors:
Igor Fedorenko - initial implementation
Thanh Ha - improvements and maintenance
David Williams - improvements and maintenance
Lars Vogel - Bug 442042
-->
<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</groupId>
<artifactId>eclipse-platform-parent</artifactId>
<version>4.17.0-SNAPSHOT</version>
<packaging>pom</packaging>
<!--
See maven-enforcer-plugin configuration to actually break the build if
run with older maven.
prerequisites section is kept for now as even if it doesn't break the build, it
is used by other plugins like versions-maven-plugin which check and warn
for using plugins with older than they require Maven version.
If version number changed in one place, be sure to change in the other.
-->
<prerequisites>
<maven>3.6.3</maven>
</prerequisites>
<properties>
<!-- As of Tycho 0.22, skipTests takes priority, if maven.test.skip also specified,
with different value. See https://bugs.eclipse.org/442976.
During production builds, we run with -DskipTests=true -->
<skipTests>false</skipTests>
<maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
<macSigner.forceContinue>false</macSigner.forceContinue>
<buildTimestamp>${maven.build.timestamp}</buildTimestamp>
<buildType>I</buildType>
<buildId>${buildType}${buildTimestamp}</buildId>
<!--
releaseName should match the yearly "release train" name.
For example, "Mars", "Mars.1", "Luna SR2", etc.
It will show up in "about box",
such as Version: Mars (4.5), for main features.
See bug 328139.
-->
<releaseName>2020-09</releaseName>
<!--
The releaseNumbers below, for SDK and Platform, might be
thought of as the "marketing number" or "branding number",
and in fact are used in the branding bundle of the corresponding products.
In practice, the SDK number and Platform number are always the same,
though in theory they would not always have to be ... so we'll use
separate numbers. Also in practice, they are almost always the same as
or nearly the same as the "product feature" numbers, but for example, for
the initial release, some prefer we not use the trailing zero, but instead
merely "4.5, instead of 4.5.0". And, hypothetically, there might be a time
in the future when the platform for a new release was "merely service",
but we'd still want the "marketing number" to be increased to reflect
"a new yearly release".
-->
<releaseNumberSDK>4.17</releaseNumberSDK>
<releaseNumberPlatform>4.17</releaseNumberPlatform>
<!-- using released version (normal case)
when upgrading make sure you change pom-version-updater version in build-functions.shsource
-->
<tycho.version>2.0.0</tycho.version>
<cbi-plugins.version>1.1.8-SNAPSHOT</cbi-plugins.version>
<!--
The tycho-eclipserun-plugin will create its instance of Eclipse from this
'eclipiserun-repo' repository, such as for computing .api-descriptions and
generating API Tools reports.
-->
<eclipserun-repo>https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/</eclipserun-repo>
<comparator.repo>https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/</comparator.repo>
<!--
NOTE: this EMF and ECF URL must match exactly what is in the eclipse-sdk-prereqs.target file.
We use it (the EMF repo and ECF repo) not only for resolving pre-reqs during the build, but also in 'repository' POM for mirroring
a copy of the EMF features and ECF features into our own repository. This is required since we merely "require" EMF (not "include"
it).
And, of course, in the PDE target file, the URL is expected to be the actual URL, not a variable.
-->
<emf-repo.url>https://download.eclipse.org/modeling/emf/emf/builds/release/2.23/</emf-repo.url>
<ecf-repo.url>https://download.eclipse.org/rt/ecf/3.14.14/site.p2/</ecf-repo.url>
<!-- only used when Tycho snapshot repo is enabled in <pluginRepositories> further down -->
<tycho-snapshot-repo.url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</tycho-snapshot-repo.url>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cbi-jdt-repo.url>https://repo.eclipse.org/content/repositories/eclipse-staging/</cbi-jdt-repo.url>
<cbi-ecj-version>3.23.0.v20200828-0941</cbi-ecj-version>
<!--
Production bundles are produced by ignoring the compiler warnings specified
by ${code.ignoredWarnings} (see further down).
Good citizens don't override those default settings for their production bundles.
-->
<code.ignoredWarnings>-warn:-deprecation,unavoidableGenericProblems,warningToken</code.ignoredWarnings>
<!--
Test bundles may override the list of ignored warnings by setting this at the top of their pom.xml:
<properties>
<code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
</properties>
Good citizens use those default settings for their test bundles.
-->
<tests.ignoredWarnings>-warn:-deprecation,raw,unchecked,discouraged,warningToken</tests.ignoredWarnings>
<!--
repo for released versions of CBI. Note, we intentionally use as specific a repo as possible.
See bug 471835.
-->
<eclipse-repo.url>https://repo.eclipse.org/content/repositories/cbi/</eclipse-repo.url>
<cbi-snapshots-repo.url>https://repo.eclipse.org/content/repositories/cbi-snapshots/</cbi-snapshots-repo.url>
<cbi-releases-repo.url>https://repo.eclipse.org/content/repositories/cbi-releases/</cbi-releases-repo.url>
<!--
This eclipse-p2-repo.url is specifically for the build-individual-bundles profile.
See that profile for longer comment.
-->
<eclipse-p2-repo.url>This_URL_set_in_build-individual-bundles_profile</eclipse-p2-repo.url>
<!--
If configuration is not specified at all, in signing plugin, the default
is 'false' (do not exclude inner jars, that is inner jars are signed).
-->
<defaultSigning-excludeInnerJars>false</defaultSigning-excludeInnerJars>
<!--
Valid options: error, warning, and ignore
jgit.dirtyWorkingTree checking was added as of Tycho 0.19.0
see: https://bugs.eclipse.org/419030
-->
<jgit.dirtyWorkingTree-platformDefault>ignore</jgit.dirtyWorkingTree-platformDefault>
<qualifier.format>'v'yyyyMMdd-HHmm</qualifier.format>
<compare-version-with-baselines.skip>true</compare-version-with-baselines.skip>
<previous-release.baseline>https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/</previous-release.baseline>
<!--
Declaration of properties that contribute to the arg line for the tycho-surefire-plugin.
The properties are declared empty by default and are overridden by automatic activation
of the profiles 'macos' and 'jdk9-or-newer' or specific configuration in modules.
-->
<!-- any additional surefire args; to be defined by a test-plugin -->
<surefire.testArgLine></surefire.testArgLine>
<!-- platform/OS specific JVM args -->
<surefire.platformSystemProperties></surefire.platformSystemProperties>
<!-- properties related to Java modules on Java 9+ -->
<surefire.moduleProperties></surefire.moduleProperties>
<!-- system specific JVM args; if needed provided by system properties to the build command -->
<surefire.systemProperties></surefire.systemProperties>
</properties>
<organization>
<name>Eclipse Foundation</name>
<url>https://www.eclipse.org/</url>
</organization>
<issueManagement>
<system>Bugzilla</system>
<url>https://bugs.eclipse.org/bugs/</url>
</issueManagement>
<distributionManagement>
<repository>
<id>repo.eclipse.org</id>
<name>Eclipse Repository - Releases</name>
<url>https://repo.eclipse.org/content/repositories/eclipse-releases/</url>
</repository>
<snapshotRepository>
<id>repo.eclipse.org</id>
<name>Eclipse Repository - Snapshots</name>
<url>https://repo.eclipse.org/content/repositories/eclipse-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<pluginRepositories>
<!-- Released Tycho versions are available on maven central, which is now mirrored to Eclipse.org.
The tycho-snapshot-repo is only needed when using snapshots. -->
<pluginRepository>
<id>tycho-snapshots</id>
<url>${tycho-snapshot-repo.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>cbi-jdt</id>
<url>${cbi-jdt-repo.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>cbi-snapshots</id>
<url>${cbi-snapshots-repo.url}</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>cbi-releases</id>
<url>${cbi-releases-repo.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>eclipse</id>
<url>${eclipse-repo.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho.version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=453757
<resolveWithExecutionEnvironmentConstraints>false</resolveWithExecutionEnvironmentConstraints>
-->
<target>
<artifact>
<groupId>org.eclipse</groupId>
<artifactId>eclipse-sdk-prereqs</artifactId>
<version>4.17.0-SNAPSHOT</version>
</artifact>
</target>
<environments>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>ppc64le</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>aarch64</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>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
<executions>
<execution>
<id>plugin-source</id>
<goals>
<goal>plugin-source</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>filter-resources</id>
<goals>
<goal>resources</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}/resources</outputDirectory>
<escapeString>\</escapeString>
</configuration>
</execution>
<execution>
<id>saveproperties</id>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>saveproperties</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!--
This maven-enforcer-plugin configuration to actually break the build if
run with older maven.
prerequisites section is kept for now as even if it doesn't break the build, it
is used by other plugins like versions-maven-plugin which check and warn
for using plugins with older than they require Maven version.
If version number changed in one place, be sure to change in the other.
-->
<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.5.4</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-p2-extras-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution> <!-- Checks versions are properly bumped from one stream to the other -->
<id>compare-attached-artifacts-with-release</id>
<goals>
<goal>compare-version-with-baselines</goal>
</goals>
<configuration>
<skip>${compare-version-with-baselines.skip}</skip>
<baselines>
<baseline>${previous-release.baseline}</baseline>
</baselines>
<comparator>zip</comparator>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-eclipserun-plugin</artifactId>
<!-- this is actually present in any 0.14+ version -->
<version>${tycho.version}</version>
<configuration>
<executionEnvironment>JavaSE-11</executionEnvironment>
<repositories>
<repository>
<id>eclipse</id>
<layout>p2</layout>
<url>${eclipserun-repo}</url>
</repository>
</repositories>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho.version}</version>
<dependencies>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
<version>${cbi-ecj-version}</version>
</dependency>
</dependencies>
<configuration>
<compilerArgs>
<args>${code.ignoredWarnings}</args>
<args>-verbose</args>
<args>-inlineJSR</args>
<args>-enableJavadoc</args>
<args>-encoding</args>
<args>${project.build.sourceEncoding}</args>
<args>-proceedOnError</args>
<!-- Use this form, for Tycho 22 or less.
<args>-log</args>
<args>${project.build.directory}/@dot.xml</args>
-->
</compilerArgs>
<!-- Use this form for Tycho 23 or greater -->
<log>xml</log>
<logDirectory>${project.build.directory}/compilelogs</logDirectory>
<showWarnings>true</showWarnings>
<excludeResources>
<exclude>**/package.html</exclude>
</excludeResources>
<useProjectSettings>false</useProjectSettings>
</configuration>
</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.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-sourceref-jgit</artifactId>
<version>${tycho.version}</version>
</dependency>
</dependencies>
<configuration>
<format>${qualifier.format}</format>
<timestampProvider>jgit</timestampProvider>
<jgit.ignore>
pom.xml
.polyglot.build.properties
</jgit.ignore>
<jgit.dirtyWorkingTree>${jgit.dirtyWorkingTree-platformDefault}</jgit.dirtyWorkingTree>
<sourceReferences>
<generate>true</generate>
</sourceReferences>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<additionalFileSets combine.children="append">
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>.api_description</include>
</includes>
</fileSet>
</additionalFileSets>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<enableAssertions>true</enableAssertions>
<argLine>${surefire.testArgLine} ${surefire.platformSystemProperties} ${surefire.systemProperties} ${surefire.moduleProperties}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<distinctSourceRoots>true</distinctSourceRoots>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-director-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-repository-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-source-feature-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<reuseBrandingPlugin>false</reuseBrandingPlugin>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<baselineMode>warn</baselineMode>
<baselineReplace>all</baselineReplace>
<baselineRepositories>
<repository>
<url>${comparator.repo}</url>
</repository>
</baselineRepositories>
<ignoredPatterns>
<pattern>META-INF/ECLIPSE_.RSA</pattern>
<pattern>META-INF/ECLIPSE_.SF</pattern>
</ignoredPatterns>
<generateDownloadStatsProperty>true</generateDownloadStatsProperty>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
<version>1.0.2</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.3.0.603</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>java15patch</id>
<properties>
<qualifier.format>'v'yyyyMMdd-HHmm'_JAVA15_PATCH'</qualifier.format>
<featureToPatch>org.eclipse.jdt</featureToPatch>
<featureToPatchPDE>org.eclipse.pde</featureToPatchPDE>
<!--
For future versions, in addition to changing this value of "featureToPatchVersion",
the same value needs to be edited in
.../java15patch/org.eclipse.jdt.java15patch/feature.xml
and
.../java15patch/org.eclipse.jdt-feature-dummy/feature.xml
and it of course, must "match" what ever version was produced by the build specified
a few lines below, as the eclipse-p2-repo-java15patch p2 repository, as well as the lower
bound, in 'versionRangeForPatch'.
Also, when new patch created, should update the wiki at
https://wiki.eclipse.org/Java15
-->
<!-- This needs the version of the feature to be patched. -->
<featureToPatchVersion>3.18.500.v20200902-1800</featureToPatchVersion>
<featureToPatchVersionPDE>3.14.500.v20200902-1800</featureToPatchVersionPDE>
<!-- Can specify an exact range here, or something of a loose range, depending on what's needed. -->
<versionRangeForPatch>[3.18.500.v20200902-1800,3.18.549.v20210708-1800)</versionRangeForPatch>
<versionRangeForPatchPDE>[3.14.500.v20200902-1800,3.14.549.v20210708-1800)</versionRangeForPatchPDE>
<!-- Comment this line when a patch is required on top of I-build -->
<comparator.repo>https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/</comparator.repo>
</properties>
<repositories>
<repository>
<id>eclipse-p2-repo-java15patch</id>
<url>https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>build-individual-bundles</id>
<activation>
<property>
<!-- Enable if aggregatorBuild property is not set -->
<name>!aggregatorBuild</name>
</property>
</activation>
<properties>
<!--
This eclipse-p2-repo.url is specifically for the build individual bundles profile and Gerrit jobs.
Default is set to I-builds for main development cycle.
For maintenance streams should always be "M-builds".
Ideally, this value would be provided by the environment, see bug 489789.
-->
<eclipse-p2-repo.url>https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/</eclipse-p2-repo.url>
</properties>
<repositories>
<repository>
<id>eclipse</id>
<url>${eclipse-p2-repo.url}</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>eclipse-sign</id>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<includePackedArtifacts>false</includePackedArtifacts>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-pack200a-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>pack200-normalize</id>
<goals>
<goal>normalize</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-jarsigner-plugin</artifactId>
<version>${cbi-plugins.version}</version>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
<configuration>
<excludeInnerJars>${defaultSigning-excludeInnerJars}</excludeInnerJars>
<!--
The default timeout is 0 seconds which means "wait forever": https://www.eclipse.org/cbi/sitedocs/eclipse-jarsigner-plugin/sign-mojo.html#timeoutMillis
We don't want to wait until the build finally aborts, so, setting a timeout (see bug 507369).
Increasing timeout from 60000 to 120000 (see bug 544823).
-->
<timeoutMillis>120000</timeoutMillis>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-pack200b-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>pack200-pack</id>
<goals>
<goal>pack</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</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>
</build>
</profile>
<profile>
<id>eclipse-pack</id>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<includePackedArtifacts>false</includePackedArtifacts>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-pack200a-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>pack200-normalize</id>
<goals>
<goal>normalize</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-pack200b-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>pack200-pack</id>
<goals>
<goal>pack</goal>
</goals>
</execution>
</executions>
</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>package</phase>
</execution>
</executions>
<configuration>
<defaultP2Metadata>false</defaultP2Metadata>
</configuration>
</plugin>
</plugins>
</build>
</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>
<!--
this tells Tycho to use JRE libraries that match bundle runtime execution environment
https://wiki.eclipse.org/Tycho/Release_Notes/0.14
TODO provide CBI-specific wiki that explains how to setup BREE libraries and toolchain.xml
-->
<useJDK>BREE</useJDK>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>partial-build</id>
<activation>
<property>
<name>eclipse-sdk-repo.url</name>
</property>
</activation>
<repositories>
<repository>
<id>eclipse-sdk-repo</id>
<url>${eclipse-sdk-repo.url}</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>default-toolsjar</id>
<activation>
<activeByDefault>true</activeByDefault>
<file>
<exists>${java.home}/../lib/tools.jar</exists>
</file>
</activation>
<properties>
<toolsjar>${java.home}/../lib/tools.jar</toolsjar>
</properties>
</profile>
<profile>
<id>missing-toolsjar</id>
<activation>
<activeByDefault>false</activeByDefault>
<file>
<exists>${java.home}/../Classes/classes.jar</exists>
</file>
</activation>
<properties>
<toolsjar>${java.home}/../Classes/classes.jar</toolsjar>
</properties>
</profile>
<profile>
<id>api-generation</id>
<activation>
<property>
<name>!longnotexistingproperty</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-cbi-plugin</artifactId>
<version>${cbi-plugins.version}</version>
<executions>
<execution>
<!--
Default lifecycle phase: 'GENERATE_SOURCES'
See https://maven.apache.org/ref/3.5.4/maven-core/lifecycles.html
-->
<goals>
<goal>generate-api-build-xml</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-eclipserun-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>eclipse-run</goal>
</goals>
<phase>compile</phase>
<configuration>
<!-- actual indexer call -->
<appArgLine>-data target/apibuild-workspace -application org.eclipse.ant.core.antRunner -buildfile
target/.apibuild.xml</appArgLine>
<dependencies>
<!-- list of bundles that we need -->
<dependency>
<artifactId>org.eclipse.ant.core</artifactId>
<type>eclipse-plugin</type>
</dependency>
<dependency>
<artifactId>org.apache.ant</artifactId>
<type>eclipse-plugin</type>
</dependency>
<dependency>
<artifactId>org.eclipse.pde.api.tools</artifactId>
<type>eclipse-plugin</type>
</dependency>
<dependency>
<artifactId>org.eclipse.pde.build</artifactId>
<type>eclipse-plugin</type>
</dependency>
<dependency>
<artifactId>org.eclipse.pde.core</artifactId>
<type>eclipse-plugin</type>
</dependency>
<dependency>
<artifactId>org.eclipse.equinox.launcher</artifactId>
<type>eclipse-plugin</type>
</dependency>
<dependency>
<artifactId>org.eclipse.osgi.compatibility.state</artifactId>
<type>eclipse-plugin</type>
</dependency>
<dependency>
<artifactId>javax.annotation</artifactId>
<type>eclipse-plugin</type>
</dependency>
</dependencies>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>api-check</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>check-skip-api-analysis</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${skipAPIAnalysis}</skip>
<exportAntProperties>true</exportAntProperties>
<target>
<condition property="skipAPIAnalysis" value="true">
<not>
<available file="${basedir}/META-INF/MANIFEST.MF"/>
</not>
</condition>
<echo file="${project.build.directory}/${project.artifactId}-apiBaseline.target">
<![CDATA[
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="${project.artifactId}-apiBaseline" sequenceNumber="1">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<repository location="${previous-release.baseline}"/>
<unit id="${project.artifactId}" version="0.0.0"/>
</location>
</locations>
</target>
]]>
</echo>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-dependency-tools-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>list-dependencies</id>
<goals>
<goal>list-dependencies</goal>
</goals>
<phase>verify</phase>
<configuration>
<skip>${skipAPIAnalysis}</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-eclipserun-plugin</artifactId>
<executions>
<execution>
<id>api-analysis</id>
<goals>
<goal>eclipse-run</goal>
</goals>
<phase>verify</phase>
<configuration>
<skip>${skipAPIAnalysis}</skip>
<applicationsArgs>
<!-- need to set workspace to a dir that's not a child of the project -->
<arg>-data</arg>
<args>${project.basedir}/../target/${project.artifactId}-apiAnalyzer-workspace</args>
<args>-application</args>
<args>org.eclipse.pde.api.tools.apiAnalyzer</args>
<args>-project</args>
<args>${project.basedir}</args>
<args>-baseline</args>
<args>${project.build.directory}/${project.artifactId}-apiBaseline.target</args>
<args>-dependencyList</args>
<args>${project.build.directory}/dependencies-list.txt</args>
<args>-failOnError</args>
</applicationsArgs>
<jvmArgs>
<jvmArg>-Xmx2048M</jvmArg>
</jvmArgs>
<repositories>
<repository>
<layout>p2</layout>
<url>${comparator.repo}</url>
</repository>
</repositories>
<dependencies>
<dependency>
<artifactId>org.eclipse.pde.api.tools</artifactId>
<type>p2-installable-unit</type>
</dependency>
<dependency>
<artifactId>javax.annotation</artifactId>
<type>p2-installable-unit</type>
</dependency>
<dependency>
<artifactId>org.eclipse.equinox.p2.transport.ecf</artifactId>
<type>p2-installable-unit</type>
</dependency>
<dependency>
<artifactId>org.eclipse.ecf.provider.filetransfer.ssl</artifactId>
<type>p2-installable-unit</type>
</dependency>
<dependency>
<artifactId>org.eclipse.equinox.p2.touchpoint.natives</artifactId>
<type>p2-installable-unit</type>
</dependency>
<dependency>
<artifactId>org.eclipse.osgi.compatibility.state</artifactId>
<type>p2-installable-unit</type>
</dependency>
</dependencies>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>update-branding-plugins-about.mappings</id>
<activation>
<file>
<exists>${basedir}/about.mappings</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<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>
</build>
</profile>
<profile>
<id>coverage</id>
<properties>
<!-- Since we append output of various tests, write to a common folder besides tests -->
<!-- it's recommended to override that to an absolute value in specific Hudson configurations
and Sonar integration -->
<jacoco.destFile>${project.basedir}/../target/jacoco.exec</jacoco.destFile>
<sonar.jacoco.reportPath>${jacoco.destFile}</sonar.jacoco.reportPath>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<id>jacoco-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<append>true</append>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>spotbugs</id>
<build>
<plugins>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.0.0</version>
<configuration>
<targetJDK>11</targetJDK>
<xmlOutput>true</xmlOutput>
<effort>Max</effort>
<maxHeap>2000</maxHeap>
<threshold>medium</threshold>
<failOnError>false</failOnError>
<excludeFilterFile>spotbugs/spotbugs-exclude.xml</excludeFilterFile>
</configuration>
<executions>
<execution>
<id>analyze-compile</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>macos</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<properties>
<surefire.platformSystemProperties>-XstartOnFirstThread</surefire.platformSystemProperties>
</properties>
</profile>
<profile>
<id>jdk9-or-newer</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<surefire.moduleProperties>--add-modules=ALL-SYSTEM</surefire.moduleProperties>
</properties>
</profile>
</profiles>
<scm>
<connection>scm:git:https://git.eclipse.org/r/platform/eclipse.platform.releng.aggregator</connection>
</scm>
</project>