{"id":14987950,"url":"https://github.com/apache/netbeans-nbpackage","last_synced_at":"2025-10-19T12:30:21.597Z","repository":{"id":65979546,"uuid":"572533564","full_name":"apache/netbeans-nbpackage","owner":"apache","description":"Apache NetBeans NBPackage","archived":false,"fork":false,"pushed_at":"2024-12-16T21:44:06.000Z","size":902,"stargazers_count":16,"open_issues_count":5,"forks_count":7,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-01-30T10:34:27.783Z","etag":null,"topics":["netbeans","netbeans-platform"],"latest_commit_sha":null,"homepage":"https://netbeans.apache.org/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-30T13:34:36.000Z","updated_at":"2025-01-21T13:08:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"ee70ac78-5038-400a-87ee-dd0049db18d8","html_url":"https://github.com/apache/netbeans-nbpackage","commit_stats":{"total_commits":122,"total_committers":6,"mean_commits":"20.333333333333332","dds":"0.34426229508196726","last_synced_commit":"5624703bd9707c479cd48606d89890824de3150c"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fnetbeans-nbpackage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fnetbeans-nbpackage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fnetbeans-nbpackage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fnetbeans-nbpackage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/netbeans-nbpackage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237125500,"owners_count":19259296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["netbeans","netbeans-platform"],"created_at":"2024-09-24T14:15:47.121Z","updated_at":"2025-10-19T12:30:15.725Z","avatar_url":"https://github.com/apache.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apache NetBeans Packager (nbpackage)\n\n`nbpackage` is a command line tool and library for packaging the NetBeans IDE or\na NetBeans platform application into a native installer or package. It supports\noptional bundling of a Java runtime to make a self-contained application. It is\ninspired by the JDK's `jpackage` tool, but tailored to the needs of the IDE and\nRCP, with a different range of packagers, and some support for cross-platform\npackage building.\n\n## Usage\n\nRun `nbpackage --help` to see options.\n\nWhile options for the packagers can be set on the command line, the easiest way\nis to use the support for a configuration file in Java Properties format.\n\nUse the `--save-config` option to output all available options, or just the ones\nfor a specific packager, to a properties file. Using a separate configuration file\nfor each package type is the best option. The output file includes comments for\neach available option.\n\neg. to build an InnoSetup installer, first create the configuration file -\n\n`nbpackage --type windows-innosetup --save-config inno.properties`\n\nEdit the properties file, with package name, customized icons, path to Java\nruntime, etc. As well as the path to the native build tool. Paths can be prefixed\nwith `${CONFIG}/` to be relative to configuration file location.\n\nThen build the installer from the IDE / RCP zip using -\n\n`nbpackage --config inno.properties --input \u003cPATH_TO_ZIP\u003e`\n\nUse the `--verbose` option to see the output of the native packaging tools.\n\n### Template files\n\nMost packagers use overridable templates, for build files, `.desktop` files, `.plist`\nfiles, etc. To save the existing templates for editing, use -\n\n`nbpackage --type \u003cPACKAGE_TYPE\u003e --save-templates \u003cPATH_TO_FOLDER\u003e`\n\nEdit the files, and add the paths to the relevant properties in the configuration\nfile (using `${CONFIG}/` relative paths where appropriate).\n\n### Modifying the package image\n\n`nbpackage` will first build an image - a directory with the correct layout and\nadditional files for passing to the packaging tool. It is possible to use the\n`--image-only` and `--input-image` options to perform this in two separate passes\nto allow for customization of the process.\n\n## Supported packagers\n\n### `--type linux-appimage`\n\nCreate a Linux [AppImage][appimage]. Requires download of the \n[AppImageTool][appimagetool], making it executable, and adding the path to the\nconfiguration file.\n\n### `--type linux-deb`\n\nCreate a Linux DEB package. Requires `dpkg`, `dpkg-deb` and `fakeroot` to be\navailable on the system.\n\n### `--type linux-rpm`\n\nCreate a Linux RPM package. Requires `rpm` and `rpmbuild` to be available on the\nsystem.\n\n### `--type macos-pkg`\n\nCreate a macOS PKG installer. Requires `swift` to build the launcher, `codesign`\nif signing binaries, and `pkgbuild` to build the actual package.\n\nIf code signing identities are configured, the package will be signed, as well as\nall native binaries including those inside JAR files. The search patterns for\nnative binaries and JAR files with native binaries can be adapted if necessary.\nThe built package should then pass the Apple notarization process (submission and\nstapling must be done manually).\n\n### `--type windows-innosetup`\n\nCreate a Windows [Inno Setup][innosetup] installer. Requires download of the\ninstaller tools, and adding the path to the `iscc` compiler to the packager\nconfiguration. See also [further information on the iscc tool][iscc].\n\nInno Setup works well with Wine for building installers on other OS. Write a short\nshell script that invokes the `iscc` tool via `wine` and use this in the packager\nconfiguration - eg.\n\n```bash\n#!/bin/sh\nwine C:\\\\Program\\ Files\\ \\(x86\\)\\\\Inno\\ Setup\\ 6\\\\ISCC.exe $1\n```\n\n### `--type zip`\n\nMainly for debugging purposes, although can be used to bundle an RCP application\nwith local runtime. As the IDE launcher does not yet support relative JDK location,\nthis is less useful there.\n\n## Building from source\n\nBuilding `nbpackage` requires JDK 11+. The project uses the Maven Wrapper.\nBuilding in the IDE or executing `mvnw package` will build the tool. Output can\nbe found in `target/nbpackage-\u003cVERSION\u003e/`, as well as adjacent source and binary\narchives.\n\nRun `./nbpackage-\u003cVERSION\u003e/bin/nbpackage --help` to check.\n\n[appimage]: https://appimage.org/\n[appimagetool]: https://github.com/AppImage/AppImageKit/releases/\n[innosetup]: https://jrsoftware.org/isinfo.php\n[iscc]: https://jrsoftware.org/ishelp/index.php?topic=compilercmdline\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fnetbeans-nbpackage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fnetbeans-nbpackage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fnetbeans-nbpackage/lists"}