Module io.inverno.tool.buildtools


module io.inverno.tool.buildtools

The Inverno Build Tools module provides tools for running, packaging and distributing modular Java applications.

Considering a modular Java project with heterogeneous dependencies, it basically allows to:

  • Modularize automatic and unnamed dependencies
  • Run or start/stop the project application in a separated process
  • Create a JMOD archive of the project
  • Build an optimized Java runtime containing the project, its dependencies along with an optimized specific Java runtime.
  • Package the project application in optimized native delivrables
  • Create a container image of the project application as a TAR archive or load it to a local Docker daemon or deploy it to a remote image registry.

A modular Java project can be fully modularized and packaged in a Debian package, ready to be deployed as follows:


 Project project = ... 
 
 Set<Path> applicationPaths = this.project
     .modularizeDependencies()
     .buildJmod()
     .buildRuntime()
     .packageApplication()
     .copyright("Copyright 2023 Inverno")
     .vendor("Inverno Framework")
     .licensePath(Path.of("src/test/resources/legal/LICENSE"))
     .types(Set.of(PackageApplicationTask.PackageType.DEB))
     .execute();    
 

A modular Java project can be containerized and loaded directly to the local Docker daemon as follows:


 Project project = ...
 
 ContainerizeTask.ContainerImageRef imageReference = this.project
     .modularizeDependencies()
     .buildJmod()
     .buildRuntime()
     .packageApplication()
     .containerize()
     .target(Target.DOCKER)
     .execute();
 
Since:
1.4
Author:
Jeremy Kuhn