Creating modular runtime images
Gunnar Morling edited this page Oct 31, 2017
·
1 revision
To create a modular runtime image (see JEP 220), configure the create-runtime-image goal as follows:
...
<plugin>
<groupId>org.moditect</groupId>
<artifactId>moditect-maven-plugin</artifactId>
<version>1.0.0.Alpha2</version>
<executions>
<execution>
<id>create-runtime-image</id>
<phase>package</phase>
<goals>
<goal>create-runtime-image</goal>
</goals>
<configuration>
<modulePath>
<path>${project.build.directory}/modules</path>
</modulePath>
<modules>
<module>com.example.module1</module>
<module>com.example.module2</module>
</modules>
<launcher>
<name>helloWorld</name>
<module>com.example.module1</module>
</launcher>
<outputDirectory>
${project.build.directory}/jlink-image
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
...
The following configuration options exist:
-
modulePath
: One or more directories with modules to be considered for creating the image (required); thejmods
directory of the current JVM will be added implicitly, so it doesn't have to be given here -
modules
: The module(s) to be used as the root for resolving the modules to be added to the image (required) -
outputDirectory
: Directory in which the runtime image should be created (required) -
launcher
: file name and main module for creating a launcher file (optional) -
stripDebug
whether to strip debug symbols or not (optional, defaults tofalse
)
Once the image has been created, it can be executed by running:
./<outputDirectory>/bin/java --module com.example
Or, if a launcher has been configured:
./<outputDirectory>/bin/<launcherName>