Watch
1
0
Fork
You've already forked jeap-cli
0
mirror of https://github.com/jeap-admin-ch/jeap-cli.git synced 2026-08-17 12:54:59 +00:00
Read-only mirror of https://github.com/jeap-admin-ch/jeap-cli — Bundesamt für Informatik und Telekommunikation. Issues & pull requests at the source. Catalog: https://www.opensource.admin.ch/en/softwares/188j4c https://www.opensource.admin.ch/en/softwares/188j4c
  • Java 93.6%
  • Shell 5.6%
  • Dockerfile 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-04 16:27:11 +02:00
.github JEAP-6878 2026-06-02 15:44:39 +02:00
.idea/runConfigurations JEAP-6277 Add java 25 migration 2025-11-25 13:58:13 +01:00
.mvn JEAP-7140 Update maven version 2026-06-10 21:35:24 +02:00
docs JEAP-7125 Add CSV references for PAS backfill 2026-06-24 16:53:46 +02:00
jeap-cli JEAP-7373 Improve Spring Boot 4 migration 2026-08-04 16:27:11 +02:00
.gitignore JEAP-6868 Cleanup 2026-03-31 13:37:50 +02:00
.sdkmanrc JEAP-6884 2026-06-01 08:53:52 +02:00
.trivyconfig.yaml JEAP-6277 Add java 25 migration 2025-11-25 13:58:13 +01:00
AGENTS.md JEAP-7140 Migrate jeap-cli to Spring Boot 4 2026-06-10 21:35:24 +02:00
CHANGELOG.md JEAP-7373 Improve Spring Boot 4 migration 2026-08-04 16:27:11 +02:00
CONTRIBUTING.md JEAP-6315 Initial revision 2025-11-12 14:51:58 +01:00
install.sh JEAP-6884 2026-06-01 08:53:52 +02:00
jeap JEAP-7124 Add PAS backfill commands 2026-06-23 16:56:18 +02:00
LICENSE JEAP-6315 Initial revision 2025-11-12 14:51:58 +01:00
local-docker-image-build.sh JEAP-6277 Add java 25 migration 2025-11-25 13:58:13 +01:00
mvnw JEAP-6315 Initial revision 2025-11-12 14:51:58 +01:00
pom.xml JEAP-7373 Improve Spring Boot 4 migration 2026-08-04 16:27:11 +02:00
publiccode.yml JEAP-7373 Improve Spring Boot 4 migration 2026-08-04 16:27:11 +02:00
README.md JEAP-7125 Add CSV references for PAS backfill 2026-06-24 16:53:46 +02:00
SECURITY.md JEAP-6315 Initial revision 2025-11-12 14:51:58 +01:00
THIRD-PARTY-LICENSES.md JEAP-7125 Add CSV references for PAS backfill 2026-06-24 16:53:46 +02:00

jEAP CLI

jeap-cli is a command-line interface tool designed to streamline the management of applications built using the jEAP framework. It provides functionalities for version migrations, initializing new projects, and other essential tasks to facilitate efficient application development and maintenance.

Installation

You can install jEAP CLI directly from the command line using curl. This will download and install the launcher script system-wide under /usr/local/bin/jeap, making the jeap command available in your environment.

curl -sSL https://raw.githubusercontent.com/jeap-admin-ch/jeap-cli/main/install.sh | bash

The CLI will update itself regularly.

Requirements

  • A working local Docker environment
  • curl installed on your system
  • sudo installed if you want to install the CLI system-wide
  • Linux (tested on Ubuntu, works on most distributions) or Mac OS X

Configuration

The CLI can be configured using environment variables:

Variable Description
JEAP_CLI_IMAGE Override the Docker image used (default: ghcr.io/jeap-admin-ch/jeap-cli:latest)
JEAP_CLI_VERBOSE Enable verbose mode to show the Docker command being executed
JEAP_CLI_NO_HOST_CERTS Set to 1 to disable automatic mounting of host CA certificates

Proxy and Certificate Support

The CLI automatically:

  • Passes proxy environment variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY) to the container
  • Mounts host CA certificates from /etc/ssl/certs for curl/wget to work behind corporate proxies

To disable automatic certificate mounting use:

JEAP_CLI_NO_HOST_CERTS=1 ./jeap <command>

Available Commands

Command Description
migrate java-25 Migrate a jEAP application to Java 25
migrate spring-boot-4 Migrate a jEAP application to Spring Boot 4
pas-backfill send Submit a backfill job to the PAS
pas-backfill report Read the backfill job report from the PAS

Building

This section describes how to build the jEAP CLI from source. Note that for native image builds and local CLI docker image builds, a GraalVM installation is required. When using SDKMAN, you can install GraalVM with the following command:

sdk install java 25-graalce
sdk use java 25-graalce

Non-native build for Java Hotspot

To create a standard Java executable JAR file, run the following command. The JAR file will be generated in the jeap-cli/target directory.

./mvnw clean package

Native build with GraalVM

To create a native executable using GraalVM, run the following command. This requires GraalVM to be installed and configured in the build environment. The native executable will be generated in the jeap-cli/target directory. The release version of the CLI is built as a native executable to improve startup time.

./mvnw clean package -Pnative

Local Docker Image Build

The production CLI is deployed as a Docker image that includes the native executable and Maven for building projects. For testing the resulting image in the local development environment, use the provided build script that handles both the native build and Docker image creation.

Make sure your JAVA_HOME environment variable is set to a GraalVM JDK. For example by using sdkman:

sdk use java 25-graalce

Then run the following command:

./local-docker-image-build.sh

The script automatically detects and handles:

  • Proxy configuration from environment variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY)
  • Corporate CA certificates from the system trust store are passed to the CLI container

The resulting Docker image will be tagged as jeap-cli:latest, and can be run using the following command:

export JEAP_CLI_IMAGE=jeap-cli:latest && ./jeap help

Note

This repository is part of the open source distribution of jEAP. See github.com/jeap-admin-ch/jeap for more information.

License

This repository is Open Source Software licensed under the Apache License 2.0.