The Eclipse Packaging Project (EPP) provides the download packages based on the content of the quaterly Simultaneous Release. The download packages are avaiable at https://www.eclipse.org/downloads/eclipse-packages/.
Please see RELEASING.md for instructions on the release process for the EPP project.
Please see CONTRIBUTING.md for instructions on how to setup an environment for contributing to the EPP project.
It's easy to run the build locally! All you need is Maven:
mvn clean verify
This will build all the packages (using automatically activated profiles) and the resulting zip, tar.gz, and dmg will be in packages/org.eclipse.epp.package.${PACKAGE}.product/target/products.
In addition, the combined p2 site will be in archive/repository.
If you want to build just a single package, add the profile for the package you want to build, along with the profile to materialize the product:
mvn verify -Pepp.p2.common -Pepp.product.cpp -Pepp.p2.cpp -Pepp.materialize-products
This build creates output in two places:
- The
zip,tar.gz, anddmgarchives for the packages inarchive/. - The p2 repository with the EPP artifacts in
archive/repository/.
By default the maven build runs the build for all platforms.
This can be time consuming and can be changed to only build a limited number of platforms
which is a useful for testing changes locally.
The profile single-env can be used to build only for a single target.
It is actived by setting these system properties.
mvn verify ... -Denv.os=linux -Denv.ws=gtk -Denv.arch=x86_64
From an m2e launch, you can use the system properties of the host:
... -Denv.os=${system_property:osgi.os} -Denv.ws=${system_property:osgi.ws} -Denv.arch=${system_property:osgi.arch}
Each package uses its own profile, with the resulting zip, tar.gz, and dmg in packages/org.eclipse.epp.package.${PACKAGE}.product/target/products.
With the epp.materialize-products profile the zip, tar.gz, and dmg will be created, otherwise only the p2 site will be created.
epp.package.committersepp.package.cppepp.package.embedcppepp.package.dslepp.package.javaepp.package.jeeepp.package.modelingepp.package.phpepp.package.rcpepp.package.scout
The macOS dmg files can only be created within the Eclipse Foundation infrastructure.
To enable creating dmg files enable the eclipse-package-dmg profile.
Without eclipse-package-dmg enabled, only the tar.gz for macOS;
it will always be created regardless of the profile.
With the signing profiles enabled, the build artifacts, i.e., bundles and features, and the Windows and macOS executables are signed. This is done by using the Eclipse Foundation internal signing service and can be activated only if the build is running there.
- The
eclipse-sign-jarprofile enables signing of the EPP bundles and jar files. - The
eclipse-sign-macprofile enables usage of macOS signing service. - The
eclipse-sign-dmgprofile enables signing of the DMG files for the macOS platform;eclipse-package-dmgprofile needs to be enabled too. - The
eclipse-sign-windowsprofile enables usage of Windows signing service.
By default, the EPP build uses the content of the Eclipse Simultaneous Release Staging repository at https://download.eclipse.org/staging/2026-03/ as input.
Sometimes it is desired to build against another release, e.g., a different milestone,
or against a local mirror of this repository.
This can be achieved by setting the Java property eclipse.simultaneous.release.repository to another URL.
As an example, by adding the following argument to the Maven command line,
the EPP build will read its input from the composite Eclipse 2026-03 repository:
-Declipse.simultaneous.release.repository="https://download.eclipse.org/releases/2026-03"
The individual EPP packages have a special file called epp.website.xml that specifies various details about the package.
The format of the file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Package Description information to be picked up by www.eclipse.org/packages -->
<!-- PackageName is the title of your package
maintainer is the project or persons that are maintaining the package
iconurl is the fully qualified URL to the icon you wish to use on the site (48x48)
bugzillaComponentID is used to gather bugzilla information about your package.
This should be given to you after provisioning of the package is finished
testPlan is the fully qualified URL to the test plan for this package
-->
<packageMetaData
packageName="Eclipse IDE for C/C++ Developers"
maintainer="Eclipse Packaging Project"
iconurl="http://www.eclipse.org/downloads/images/c.jpg"
bugzillaComponentId="cpp-package"
testPlan="http://www.eclipse.org/epp/testplan.php" >
<!-- Description is wrapped in CDATA tags to allow you to insert HTML code if necessary -->
<description><![CDATA[An IDE for C/C++ developers.]]></description>
<!-- packageTesters is a list of the people that are testing the package -->
<packageTesters>
<tester>Markus Knauer</tester>
</packageTesters>
</packageMetaData>
...
</configuration>