Project Organization

Universal Gcode Sender uses Maven to build the project. It is using maven modules to separate the core library / classic GUI and the UGS Platform project. At the top level a UGS target defines the ugs-core and ugs-platform-parent modules which can be built separately or all at once.

The classic gui is part of the core project in the ugs-core module. The maven-shade-plugin and maven-assembly-plugin are generate the self-executing JAR and distribution zip.

UGS Platform is built on the NetBeans Platform. It is also using maven.

Development is done using NetBeans, but most of the code can be edited using any IDE that supports Maven.

Development with an IDE


Any IDE supporting Maven should be able to open the UGS project directory. Once opened it should show you the ugs-core and ugs-platform-parent modules which correspond to the Classic and Platform interfaces.

Development is done using NetBeans, and for some project development NetBeans is almost required. But for tweaking the UI and experimenting with the backend any IDE which supports maven can be used.

Classic GUI


In the ugs-core module, you can run the MainWindow.java file to start the Classic GUI.

UGS Platform


The platform build has a number of submodules. Load the suite of modules by running the ugs-platform-app module.

Development with the Command Line


The UGS Classic and Platform interfaces can also be run from the command line. These commands should be run from the root directory.

Classic GUI


There is a helper script named run_classic.sh, or you can use the commands below.

Running the UI

mvn install
mvn exec:java -Dexec.mainClass="com.willwinder.universalgcodesender.MainWindow" -pl ugs-core

Executing tests

mvn install
mvn test -pl ugs-core

Building the self-executing JAR

mvn install
mvn package -pl ugs-core

Building a UniversalGcodeSender.zip release file

mvn package assembly:assembly

UGS Platform


There is a helper script named run_platform.sh, or you can use the commands below.

Running the UI

mvn install
mvn nbm:run-platform -pl ugs-platform/application