eclipsADT-o-mat
A Windows PowerShell wizard that downloads an Eclipse release, installs ABAP Development ToolsABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abap into it with the p2 director, and adds the ADT plugins picked from a catalog of fifteen.
SAP ships ABAP Development ToolsABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abap as an update site to add to an Eclipse the developer has already installed; this wizard does both steps on the machine it runs on. It asks for a new installation or an existing one to extend, the Eclipse package and release train, the install folder and the plugins, then downloads the package, caches it, and runs the Eclipse p2 director headlessly to install ADT and the selection. The plugins come from catalog.json: DevEpos's own ABAP search, tags, code search and plugin development tools, SAP's ABAP cleaner, abapGit for ADT, six ABAPBlog plugins, GitHub Copilot, the Eclipse Marketplace Client and the Enhanced Class Decompiler. The same run works unattended with -NonInteractive and its parameters, and a new release train, base package or plugin is an entry in the catalog with no change to the script. Where adt-bundle-builderadt-bundle-builderA Windows build that downloads Eclipse, installs ABAP Development Tools and four more ADT plugins with the Eclipse p2 director, and zips the result as a portable IDE.independent, abap builds one portable zip to hand out, this installs in place on each machine.
Facts
Where it sits
Who is behind it
In the atlas: maintains 11@DevEposmaintainerLudwig Stockbauer-MuhrContributes to this
In the atlas: maintains 5, contributes to 21@stockbal1 contributor
Before choosing this
Conditions
PracticalFunctional boundary
Windows only, with PowerShell 7 (pwsh) installed; the run needs access to download.eclipse.org, tools.hana.ondemand.com, eclipse.devepos.com and the update site of every plugin selected, from the machine it installs on. A plugin outside the catalog is installed only after someone adds its update site and feature group id to catalog.json.
What it declares
Every artifact
- Type
- CLI
- Origin
- Independently maintained
As a CLI
- Distributed through
- Binary download
Connections
Getting the IDE and its plugins onto a developer's machine
SAP's Eclipse plugins for ABAP development over ADT
The Java-based IDE and plugin platform, downloaded as an archive per operating system and extended through p2 update sites. For the things here, the installation SAP's ABAP Development ToolsABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abap and their companion plugins are added to.
Download
Install
pwsh -ExecutionPolicy Bypass -File .\eclipsADT-o-mat.ps1
.\Setup-EclipsAdtOMat.ps1 -NonInteractive -BasePackage java -EclipseVersion 2026-09 `
-InstallPath C:\dev\eclipse-adt `
-Features devepos-search-tools,devepos-tagsCopied from DevEpos/eclipsADT-o-mat — README, Usage, read . Not run by the atlas.
Architecture
Download
tools.hana.ondemand.comREADME
quoted from DevEpos/eclipsADT-o-mat under MIT, readeclipsADT-o-Mat
A Windows PowerShell wizard that builds you a ready-to-use ABAP development environment: it downloads a chosen Eclipse release, installs SAP's ABAP Development Tools (ADT), and lets you pick additional ADT features to install alongside it:
See the step-by-step walkthrough for a visual tour of the wizard.
It is a lightweight alternative to an Eclipse Installer/Oomph setup: no
external tooling is required beyond PowerShell and the Eclipse package itself
(which bundles the p2 director used to drive the actual installation).
Requirements
-
Windows with PowerShell 7+ (
pwsh). -
Internet access to
download.eclipse.org/archive.eclipse.org,tools.hana.ondemand.com,eclipse.devepos.com, and any third-party plugin sites you select. -
Because script execution is disabled by default on many Windows machines, you may need to allow the script to run, e.g.:
pwsh -ExecutionPolicy Bypass -File .\Setup-EclipsAdtOMat.ps1or once per user session:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass.
Usage
Single-file download (recommended)
Download eclipsADT-o-mat.cmd from the
latest release
and double-click it - no command line and no execution-policy setup
needed (the launcher starts PowerShell 7 with -ExecutionPolicy Bypass
itself; only PowerShell 7 must be installed).
It bundles all scripts and the catalog into one file.
Prefer a plain PowerShell script? Download eclipsADT-o-mat.ps1 instead and
run:
pwsh -ExecutionPolicy Bypass -File .\eclipsADT-o-mat.ps1
On startup the single-file release checks GitHub for a newer release and offers to update itself in place. All parameters described below work identically.
Interactive wizard
.\Setup-EclipsAdtOMat.ps1
You can also start the wizard from Windows Explorer by double-clicking
Start-EclipsAdtOMat.cmd. It opens PowerShell 7, runs from the repo folder,
and keeps the console window open after the run so errors and the log location
remain visible.
You'll be prompted for:
- Whether to create a new Eclipse installation or add ADT and plugins to an existing one. When modifying an existing installation, you only pick its folder - the Eclipse version and base package are detected automatically and the base package / release selection steps are skipped.
- The base Eclipse package to install: "Eclipse IDE for Java Developers"
(default), "Eclipse IDE for RCP and RAP Developers" (for Eclipse
plug-in/PDE development), or "Eclipse Platform" (minimal core runtime
only, no language tooling - everything, including ADT, is added via p2
afterwards). Unlike the other packages, the "Eclipse Platform" package
ships without an embedded JRE; if no Java 21+ runtime is found on the
machine, the wizard automatically downloads an
Eclipse JustJ JRE into the installation's
jrefolder so Eclipse can launch. - The Eclipse release train to install (e.g.
2026-09) - the latest version supported by the chosen base package is preselected. Note that the "Eclipse Platform" package is only available for a curated subset of release trains (seecatalog.json'sbasePackages[].downloads). - The install directory. Press
Bat this prompt to choose a folder in Windows Explorer, or type a path directly. If it already exists, Eclipse is placed in aneclipsesubfolder; a new directory is used as the Eclipse root. Folders that already contain an Eclipse installation are rejected - use the "modify" mode for those. - Which additional plugins to install alongside ADT (multi-select: toggle a
number,
a= all,n= none, Enter to confirm). - If you selected any DevEpos plugin: which DevEpos channel to use for all
selected DevEpos plugins:
devorlatest.
The wizard then downloads the matching base Eclipse package (cached locally so re-runs don't re-download it), extracts it, and runs the Eclipse p2 director headlessly to install ADT and your chosen plugins.
Unattended / scripted usage
.\Setup-EclipsAdtOMat.ps1 -NonInteractive -BasePackage java -EclipseVersion 2026-09 `
-InstallPath C:\dev\eclipse-adt `
-Features devepos-search-tools,devepos-tags
Use -BasePackage rcp or -BasePackage platform to install onto a
different base package. Defaults to java when omitted.
Use -Mode Modify to add ADT and plugins to an existing installation at
-InstallPath - its Eclipse version and base package are detected
automatically, so -EclipseVersion is not required. The default
-Mode New fails if the target folder already contains an Eclipse
installation.
Use -DevEposChannel dev to install selected DevEpos plugins from the
development channel. The default is latest, and one channel is always used
for all selected DevEpos plugins.
Use -ListFeatures to print all available base packages, Eclipse versions and
plugin ids without installing anything:
.\Setup-EclipsAdtOMat.ps1 -ListFeatures
Parameters
| Parameter | Description |
|---|---|
-Mode | New (default) creates a fresh installation and fails if the target contains an Eclipse; Modify adds ADT/plugins to an existing one. |
-InstallPath | Target directory (New: an eclipse subfolder is used when the target already exists; Modify: folder of the existing installation). Defaults to ~\Documents\eclipse. |
-BasePackage | Base Eclipse package id from catalog.json: java (default), rcp or platform. Auto-detected with -Mode Modify. |
-EclipseVersion | Eclipse release train id, e.g. 2026-09. Required with -NonInteractive unless -Mode Modify (auto-detected). Must be supported by -BasePackage. |
-Features | Array of plugin ids from catalog.json to install (non-interactive mode only). |
-DevEposChannel | DevEpos channel for all selected DevEpos plugins: dev or latest (default: latest). |
-NonInteractive | Suppresses all prompts. |
-CacheDirectory | Where downloaded Eclipse zips are cached. Defaults to %LOCALAPPDATA%\eclipsADT-o-Mat\cache. |
-ListFeatures | Prints the catalog contents and exits. |
-SkipUpdateCheck | Skips the startup check for a newer release (single-file distribution only; also skipped with -NonInteractive). |
Updating the sources
The single-file release checks the GitHub releases on startup and, after confirmation, downloads the newer version over itself and restarts.
When running from a repo checkout, update the sources manually with
git pull (or re-download the repository zip from GitHub).
How it works / architecture
Setup-EclipsAdtOMat.ps1 # main wizard entry point (interactive + unattended)
Start-EclipsAdtOMat.cmd # Explorer-friendly launcher for the interactive wizard
catalog.json # data-driven catalog: base packages, Eclipse versions,
# ADT repo(s) + installable units, DevEpos channels/plugins
# + third-party plugins
lib/
Catalog.ps1 # catalog loading + base-package/version lookup helpers
Download.ps1 # cache-aware download + Eclipse zip extraction
EclipseInstall.ps1 # detects/validates existing Eclipse installations (Mode Modify)
EclipseReleaseCheck.ps1 # scrapes Eclipse for new release trains, updates catalog.json
JreProvision.ps1 # downloads a JustJ JRE for the JVM-less 'platform' package
P2Director.ps1 # wrapper around eclipsec.exe's p2 director
Menu.ps1 # console menu / multi-select prompt helpers
Logging.ps1 # console + file logging
Ui.ps1 # banner, theming, spinner, notifications
Wizard.ps1 # orchestrates the interactive/unattended wizard steps
ReleaseUpdate.ps1 # release-based self-update (single-file distribution)
build/
New-Bundle.ps1 # builds the single-file release script (CI: release.yml)
logs/ # created at runtime, one log file per run
Under the hood, the wizard downloads the official Eclipse "Java Developers" package for the selected release train, extracts it, then repeatedly invokes:
eclipsec.exe -application org.eclipse.equinox.p2.director ^
-repository <repo1,repo2,...> -installIU <iu1,iu2,...> ^
-destination <path-to-eclipse> -profile epp.package.java -followReferences
epp.package.javais the p2 profile id used by "Eclipse IDE for Java Developers" downloads (confirmed via the extracted install'sconfig.iniandp2/.../profileRegistryfolder name). Other base packages use their own profile id (e.g.epp.package.rcp);Invoke-P2Directorauto-detects the correct profile from the extracted install, so no per-package script changes are needed.- ADT's p2 repo (
https://tools.hana.ondemand.com/<version>) must be paired with the matching Eclipse release train - mixing versions causes core platform bundle version-range failures. - ADT's full feature set (
com.sap.adt.core.feature.group, which includes CDS/DDIC/debugger tooling, plus the four SAP Developer Edition feature groups available from the 2024-12 release train onward - DevEpos's own features depend on some of these) transitively requires a few EMF sub-features (org.eclipse.emf.workspace.feature.group,org.eclipse.emf.databinding.edit.feature.group,org.eclipse.emf.validation.feature.group) that are not bundled in the base Java Developers package. They must be requested fromhttps://download.eclipse.org/releases/<version>in the same director call as ADT itself - requesting them one at a time across separate calls only ever surfaces the next missing dependency instead of resolving cleanly.catalog.json'sadtentry already encodes this (seeadditionalRepoUrlTemplatesand the extra entries ininstallableUnits).
This was all verified end-to-end against real Eclipse/ADT release pairs
(2024-09, 2024-12, 2026-09): full ADT install and a DevEpos feature both
install successfully into a fresh "Eclipse IDE for Java Developers"
download with no manual repository configuration beyond what's already in
catalog.json.
Extending the catalog
catalog.json is fully data-driven - no script changes are needed to add a
new Eclipse release train, base package or plugin.
- New Eclipse version: add an entry to
eclipseVersions. For template-based base packages (java,rcp), the download URL is built from that package'surlTemplatewith{version}replaced - nothing else to do. Theplatformpackage instead uses adownloadsmap keyed by the version id, because its zip filenames embed a build-specific timestamp (e.g.R-4.36-202505281830) that can't be derived from{version}alone; find the matching build under download.eclipse.org/eclipse/downloads/drops4 (or its archive), then add its "Platform Runtime Binary" Windows x86_64 zip URL (plus anarchive.eclipse.orgfallback) toplatform.downloadsfor the new version id. If no entry is added, theplatformpackage simply won't offer that version. - New base package: add an entry to
basePackageswithid,name,description, and eitherurlTemplate/fallbackUrlTemplate(if the package follows the EPP release naming pattern) or adownloadsmap (for packages needing per-version URLs). - New plugin: add an entry to
pluginswithid,name,description,publisher,repoUrl(the plugin's p2 update site) andinstallableUnits(the feature group id(s) to install, e.g.com.example.foo.feature.group).repoUrlmay be omitted if the feature ships as part of the standardhttps://download.eclipse.org/releases/<version>release train repo already paired with every plugin install (e.g. the Eclipse Marketplace Client). If the plugin needs Eclipse's Terminal view (absent from the minimalplatformbase package), set"requiresTerminal": trueinstead of adding a fixed terminal feature id - the script resolves the correct id for the selected Eclipse version from the top-levelterminalFeatureentry (Eclipse replaced the oldorg.eclipse.tm.terminalfeature withorg.eclipse.terminalstarting with the 2025-09 release train). If the plugin only works with certain base packages, set"requiresBasePackage"to an array of the allowed base package id(s) (e.g.["rcp"]) - it is then hidden from the interactive multi-select and rejected via-Featuresunless a matching base package was chosen. - DevEpos plugins use the channel repository selected in the
devepos.channelssection. Do not add a per-plugin DevEpos repository, since mixing channels is unsupported. You can find a plugin's feature group id by browsing its p2 repository'scontent.xml(insidecontent.xml.xz/content.jar) for<unit id='...feature.group' ...>entries, or by adding the site in the Eclipse UI (Help > Install New Software) and inspecting the available features there.
Troubleshooting
- "Cannot complete the install... could not be found": usually means the
Eclipse release train and the ADT/plugin repo versions don't correspond, or
a transitive dependency isn't available from the repos listed for that
entry in
catalog.json. Check the run's log file underlogs/for the exact missing requirement id, and see if it needs to be added toadditionalRepoUrlTemplates/installableUnitsfor that catalog entry. Note: every third-party plugin install is already paired with the matchinghttps://download.eclipse.org/releases/<version>repo (in addition to the plugin's ownrepoUrl) so bundles likeorg.eclipse.lsp4eorcom.ibm.icu- present in the full EPP packages but missing from the minimalplatformbase package - can still resolve. - Script won't run ("execution of scripts is disabled"): see the Requirements section above.
- Slow/failed downloads: re-run the script - completed downloads are
cached in
-CacheDirectoryand won't be re-fetched; partial downloads are cleaned up automatically and retried.
History
Features 2
Notes
🚀 Features
- Add support for developer edition installable units in installation process (771b024)
- Update documentation and images for installation process and wizard steps (98c46ed)
Full Changelog: v0.6.0...v0.7.0
Features 3
Notes
🚀 Features
- Add git-cliff configuration for automated changelog generation (441f195)
- Add JRE provisioning for minimal Eclipse platform package (7dd2bf2)
- Enhance installation process with new mode for modifying existing Eclipse installations (af3d36c)
Full Changelog: v0.5.0...v0.6.0
Notes
Notes
Notes
Notes
Notes
Full Changelog: https://github.com/DevEpos/eclipsADT-o-mat/commits/v0.1.0
Others providing
Compare all 3 on the IDE provisioning page →- personal-application-studiopersonal-application-studioA Theia distribution for SAP developers, published as a Docker image with ABAP and UI5 language support and a template wizard already in it.independent, abapTheia distribution with ABAP and UI5 support as a Docker image
- adt-bundle-builderadt-bundle-builderA Windows build that downloads Eclipse, installs ABAP Development Tools and four more ADT plugins with the Eclipse p2 director, and zips the result as a portable IDE.independent, abapWindows build packaging Eclipse with ADT as a portable IDE
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
Contributors
History in the atlas
- Entered by intake from the repository README and description.
- First seen.
For your agent
- Ref
artifact:devepos-eclipsadt-o-mat- JSON
- /artifacts/devepos-eclipsadt-o-mat.json
- MCP
- Connecting an agent