Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

This file documents all notable changes to https://github.com/devonfw/IDEasy[IDEasy].

== 2026.05.001

Release with new features and bugfixes:

* https://github.com/devonfw/IDEasy/issues/1724[#1724]: add gui CLI commandlet.

== 2026.04.001

Release with new features and bugfixes:
Expand Down
25 changes: 24 additions & 1 deletion cli/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,30 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-gui-pom</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir="${project.build.directory}/package/${gui.relative_pom_path}"/>

<copy
file="${basedir}/../gui-launcher/.flattened-pom.xml"
tofile="${project.build.directory}/package/${gui.relative_pom_path}/pom.xml"
failonerror="true"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
Expand Down Expand Up @@ -303,5 +327,4 @@
</build>
</profile>
</profiles>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import com.devonfw.tools.ide.tool.go.Go;
import com.devonfw.tools.ide.tool.graalvm.GraalVm;
import com.devonfw.tools.ide.tool.gradle.Gradle;
import com.devonfw.tools.ide.tool.gui.Gui;
import com.devonfw.tools.ide.tool.helm.Helm;
import com.devonfw.tools.ide.tool.intellij.Intellij;
import com.devonfw.tools.ide.tool.jasypt.Jasypt;
Expand Down Expand Up @@ -147,6 +148,7 @@ public CommandletManagerImpl(IdeContext context) {
add(new Corepack(context));
add(new Pip(context));
add(new Go(context));
add(new Gui(context));
}

/**
Expand Down
55 changes: 55 additions & 0 deletions cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package com.devonfw.tools.ide.tool.gui;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.devonfw.tools.ide.commandlet.Commandlet;
import com.devonfw.tools.ide.context.IdeContext;
import com.devonfw.tools.ide.process.ProcessMode;
import com.devonfw.tools.ide.tool.mvn.Mvn;
import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet;
import com.devonfw.tools.ide.variable.IdeVariables;

/**
* {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI.
*/
public class Gui extends Commandlet {

private static final Logger LOG = LoggerFactory.getLogger(Gui.class);

private static final String POM_PATH = "gui-execution";

/**
* @param context the {@link IdeContext}.
*/
public Gui(IdeContext context) {

super(context);
addKeyword(getName());
}

@Override
public String getName() {

return "gui";
}

@Override
protected void doRun() {

LOG.debug("Starting GUI via commandlet");

Mvn mvn = context.getCommandletManager().getCommandlet(Mvn.class);

List<String> args = List.of(
"-f",
IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml",
"exec:java",
"-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher"
);

mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly what I was also thinking of for KISS.
However, we would need to specify the minimum Java version that is currently 21 (see our top-level pom.xml).
Otherwise projects that use a lower Java version will run our gui with that Java version what will fail.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated in commit c4cf133

}
}
2 changes: 2 additions & 0 deletions cli/src/main/resources/nls/Help.properties
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ cmd.graalvm=Tool commandlet for GraalVm (Java with native-image).
cmd.graalvm.detail=GraalVM is a high-performance runtime that supports multiple languages and execution modes. Detailed documentation can be found at https://www.graalvm.org/docs/
cmd.gradle=Tool commandlet for Gradle (Build-Tool).
cmd.gradle.detail=Gradle is a build automation tool for Java, Kotlin, and other JVM-based languages. Detailed documentation can be found at https://docs.gradle.org/
cmd.gui=Tool commandlet for running the IDEasy GUI
cmd.gui.detail=This command will run the GUI version of IDEasy, opening up a more comprehensible project dashboard and allowing for easier management of your local IDEasy instance.
cmd.helm=Tool commandlet for Helm (Kubernetes Package Manager).
cmd.helm.detail=Helm is a package manager for Kubernetes that simplifies deploying and managing applications. Detailed documentation can be found at https://helm.sh/docs/
cmd.help=Prints this help.
Expand Down
2 changes: 2 additions & 0 deletions cli/src/main/resources/nls/Help_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ cmd.graalvm=Werkzeug Kommando für GraalVm.
cmd.graalvm.detail=GraalVM ist eine leistungsstarke Laufzeitumgebung, die mehrere Sprachen und Ausführungsmodi unterstützt. Detaillierte Dokumentation ist zu finden unter https://www.graalvm.org/docs/
cmd.gradle=Werkzeug Kommando für Gradle (Build-Tool).
cmd.gradle.detail=Gradle ist ein Build-Automatisierungstool für Java, Kotlin und andere JVM-basierte Sprachen. Detaillierte Dokumentation ist zu finden unter https://docs.gradle.org/
cmd.gui=Werkzeug Kommando, um die GUI von IDEasy zu öffnen.
cmd.gui.detail=Dieser Befehl startet die GUI-Version von IDEasy, öffnet ein übersichtlicheres Projekt-Dashboard und erleichtert die Verwaltung Ihrer lokalen IDEasy-Instanz.
cmd.helm=Werkzeug Kommando für Helm (Kubernetes Package Manager).
cmd.helm.detail=Helm ist ein Paketmanager für Kubernetes, der das Bereitstellen und Verwalten von Anwendungen vereinfacht. Detaillierte Dokumentation ist zu finden unter https://helm.sh/docs/
cmd.help=Zeigt diese Hilfe an.
Expand Down
55 changes: 55 additions & 0 deletions gui-launcher/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<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>
<parent>
<groupId>com.devonfw.tools.IDEasy.dev</groupId>
<artifactId>ide</artifactId>
<version>dev-SNAPSHOT</version>
</parent>
<groupId>com.devonfw.tools.IDEasy</groupId>
<artifactId>ide-gui-launcher</artifactId>
<version>${revision}</version>
<packaging>pom</packaging>
<description>Launcher for IDEasy GUI</description>

<dependencies>
<dependency>
<groupId>com.devonfw.tools.IDEasy</groupId>
<artifactId>ide-gui</artifactId>
<version>${revision}</version>
<type>jar</type>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>copy-gui-launcher-flattened-pom</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/package/gui</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>.flattened-pom.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
13 changes: 13 additions & 0 deletions gui/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,19 @@

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.devonfw.ide.gui.AppLauncher</mainClass>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>

</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
Expand Down
2 changes: 2 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
<assembly.maven.plugin.version>3.7.1</assembly.maven.plugin.version>
<build.helper.maven.plugin.version>3.6.1</build.helper.maven.plugin.version>
<graalvm.version>24.2.1</graalvm.version>
<gui.relative_pom_path>gui-execution</gui.relative_pom_path>
</properties>

<dependencyManagement>
Expand Down Expand Up @@ -174,6 +175,7 @@
<module>documentation</module>
<module>cli</module>
<module>gui</module>
<module>gui-launcher</module>
<module>url-updater</module>
<module>security</module>
</modules>
Expand Down
Loading