The client plugin introduces the following goals:

  • client:compile

  • client:link

  • client:build

  • client:package

  • client:install

  • client:run


This goal performs AOT compilation by executing the native-image command and builds the shared object file. It is a very intensive and lengthy task (several minutes, depending on your project and CPU), so it should be called only when the project is ready and runs fine on a VM.

The results will be available at target/client/$arch-$os/gvm.

Links the object file to create a native executable file or shared library.

The results will be available at target/client/$arch-$os/$AppName.


This goal simply combines client:compile and client:link.


Packages the executable or shared library into a target specific package that includes all the necessary dependencies.

The list of platform specific packages are as follows:

  • Linux - deb, rpm

  • macOS - app, pkg, deb

  • Windows - exe, msi

  • iOS - app, ipa

  • Android - apk


At the moment, this goal is only supported for iOS and Android.


Installs the package on the host system or attached device.


At the moment, this goal is only intended for Android.


Runs either the executable generated by client:link on the host system or runs the application that was installed on the device (iOS or Android).