public void execute()

in nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/BuildMacMojo.java [111:163]


    public void execute()
            throws MojoExecutionException, MojoFailureException {
        if (!"nbm-application".equals(project.getPackaging())) {
            throw new MojoExecutionException(
                    "This goal only makes sense on project with 'nbm-application' packaging.");
        }

        try {
            File bundleDir = new File(outputDirectory, brandingToken + ".app");
            bundleDir.mkdirs();

            File contentsDir = new File(bundleDir, "Contents");
            contentsDir.mkdirs();

            File resourcesDir = new File(contentsDir, "Resources");
            resourcesDir.mkdirs();

            File appDir = new File(resourcesDir, brandingToken);
            appDir.mkdirs();

            File macOSDir = new File(contentsDir, "MacOS");
            macOSDir.mkdirs();

            File app = new File(outputDirectory, brandingToken);
            FileUtils.copyDirectoryStructure(app, appDir);

            // delete windows executables
            Files.delete(appDir.toPath().resolve("bin/" + brandingToken + ".exe"));
            Files.delete(appDir.toPath().resolve("bin/" + brandingToken + "64.exe"));

            copyIcon(resourcesDir);

            copyInfoPlist(contentsDir);

            copyLauncher(macOSDir);

            if (macZipBundle) {
                DefaultFileSet fileset = new DefaultFileSet(outputDirectory);
                fileset.setIncludes(new String[]{bundleDir.getName(), bundleDir.getName() + "/**"});

                ZipArchiver archiver = new ZipArchiver();
                archiver.addFileSet(fileset);

                File zipFile = new File(outputDirectory, brandingToken + "-macOS.zip");
                archiver.setDestFile(zipFile);

                archiver.createArchive();
            }

        } catch (IOException | MojoExecutionException | ArchiverException ex) {
            throw new MojoExecutionException("Build macOS application bundle failed: " + ex, ex);
        }
    }