public void execute()

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);
        }
    }