in atomos.maven/src/main/java/org/apache/felix/atomos/maven/nativeimage/NativeImageMojo.java [63:137]
public void execute() throws MojoExecutionException
{
if (nativeImage.applicationName == null)
{
nativeImage.applicationName = project.getArtifactId();
}
try
{
if (classpath == null)
{
MavenClassPathConfig classPathConfig = new MavenClassPathConfig();
MavenClasspathMavenConfig mavenIndexMojoConfig = new MavenClasspathMavenConfig();
classPathConfig.maven = List.of(mavenIndexMojoConfig);
classpath = classPathConfig;
}
File outputDirectory = Paths.get(project.getBuild().getDirectory()).toFile();
Files.createDirectories(outputDirectory.toPath());
LauncherBuilder builder = Launcher.builder();
//Collect files using paths and filters
Optional.ofNullable(classpath.paths)//
.orElse(List.of())//
.forEach(cc -> {
PathCollectorPluginConfig pc = LauncherBuilderUtil.processClasspathFile(
cc);
builder.addPlugin(PathCollectorPlugin.class, pc);
});
//Collect files from maven project
Optional.ofNullable(classpath.maven)//
.orElse(List.of())//
.forEach(cc -> {
PathCollectorPluginConfig pc = LauncherBuilderUtil.processClasspathMaven(
project, cc);
builder.addPlugin(PathCollectorPlugin.class, pc);
});
MavenIndexConfig mic = new MavenIndexConfig();
mic.indexOutputType = IndexOutputType.JAR;
//Index-Plugin
IndexPluginConfig ic = LauncherBuilderUtil.processIndex(mic, project);
builder.addPlugin(IndexPlugin.class, ic);
//
Config cfg = new Config()
{
};
builder//
.addPlugin(ReflectionBundleActivatorPlugin.class, cfg)//
.addPlugin(ComponentDescriptionPlugin.class, cfg)//
.addPlugin(GogoPlugin.class, cfg)//
.addPlugin(InvocatingBundleActivatorPlugin.class, cfg)//
.addPlugin(OsgiDTOPlugin.class, cfg)//
.addPlugin(ResourcePlugin.class, cfg);//
//Naitve image
if (nativeImage.outputDirectory == null)
{
nativeImage.outputDirectory = outputDirectory;
}
NativeImageBuilderConfig nic = LauncherBuilderUtil.processNativeImageConfig(
nativeImage, project);
builder.addPlugin(NativeImagePlugin.class, nic);
builder.build().execute();
}
catch (Exception e)
{
throw new MojoExecutionException("Error", e);
}
}