{"id":37024774,"url":"https://github.com/nsoft/uno-jar","last_synced_at":"2026-01-14T03:00:21.806Z","repository":{"id":46323510,"uuid":"64974630","full_name":"nsoft/uno-jar","owner":"nsoft","description":"Classloader based Fat Jar packaging","archived":false,"fork":false,"pushed_at":"2025-12-21T23:04:12.000Z","size":22191,"stargazers_count":21,"open_issues_count":11,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-12-23T10:33:49.559Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nsoft.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"patreon":"needhamsoftware"}},"created_at":"2016-08-04T23:52:44.000Z","updated_at":"2025-12-22T07:36:16.000Z","dependencies_parsed_at":"2024-05-04T15:57:07.475Z","dependency_job_id":"e55bb3ab-3ff3-431e-8328-8a5838ade875","html_url":"https://github.com/nsoft/uno-jar","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/nsoft/uno-jar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsoft%2Funo-jar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsoft%2Funo-jar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsoft%2Funo-jar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsoft%2Funo-jar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nsoft","download_url":"https://codeload.github.com/nsoft/uno-jar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsoft%2Funo-jar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-01-14T03:00:20.434Z","updated_at":"2026-01-14T03:00:21.726Z","avatar_url":"https://github.com/nsoft.png","language":"Java","funding_links":["https://patreon.com/needhamsoftware"],"categories":[],"sub_categories":[],"readme":"# Uno-Jar\n\nSingle jar packaging based on a JarClassLoader.\nUnlike maven shade and gradle shadow, this form of packaging does not intermix classes into a single directory, and thereby maintains a degree of separation between libraries with distinct licensing concerns.\nI am not a Lawyer, and can't give legal advice, but I feel that this method is much more consistent with LGPL license restrictions than shade/shadow because the original distributed binary jar is maintained intact as distributed.\nThe distributed Jar file simply acts as a compressed file system in Uno-Jar. Unpacking and fiddling with package names as done in shade or shadow changes the work and (in my own, not a lawyer opinion) is running the risk of creating a derived work for which source code would need to be published.\n\nUnlike capsule ([dead since 2017](https://github.com/puniverse/capsule)), it does not want to extract jar files onto the user's filesystem, and is not normally hindered by a lack of write access to the filesystem.\n\nThis project is based on a fork of One-JAR\u003csup\u003e(TM)\u003c/sup\u003e by Simon Tuffs. Please be sure to see the NOTICE.txt file\nfor the restrictions on using his code.\nBe especially aware that he trademarked the name One-Jar (which is why we don't use it for this project)\nThe original project can be found at:\n\nhttp://one-jar.sourceforge.net/\n\n## Documentation\n\nUser documentation can be found in our wiki: https://github.com/nsoft/uno-jar/wiki\n\n## Goals\n\nThe original One-JAR project evolved in a time long before modern build frameworks. It has become\nsignificantly out dated and is not actively maintained. For example, it has facilities for\ncreating an \"SDK\" that can be used to jump-start a project with it. Back in the early 2000's this\nwas a popular pattern, but In this day and age it has become redundant with modern\ntools such as maven and gradle. These tools already have jump-starting capabilities via archetypes, and most IDE's\nwill lay out a standard project layout. Uno-jar will endeavor to carry forward the **basic** functionality\nof One-JAR and leave behind the outdated features as much as possible.\n\nThe PRIMARY use case in all of this is to add an ant task, or gradle task to a build that packages an application\ninto an executable \"fat jar\" that loads its classes from distinct jar files contained within the final\nsingle distributable jar, that runs with a simple `java -jar` invocation. Facilities for unpacking this automatically\nor the like are not likely to be supported going forward. The focus must be kept narrow so that the tool can remain\nlight and hopefully be more easily maintained.\n\n\n## Status\n\nUno-Jar is now fully ready to use, it works with Java 11, but does not have any particular support for the Java 9+ module system.\nModular jars are expected to generally work or fail as they would on any other classpath, though this has not been extensively tested, and distribution of a fully modular application via uno-jar is untested.\nUno-Jar does however support multi-release jars (a. k. a. MR jars) as libraries and correctly loads the appropriate classes for the JVM in use.\nCore and ant jars can be found on maven central here:\n\nhttps://search.maven.org/search?q=g:com.needhamsoftware.unojar\n\nthe gradle task can be found at\n\nhttps://plugins.gradle.org/plugin/com.needhamsoftware.unojar\n\n### Unsupported\nAnything else. If you miss a One-Jar feature and wish to contribute to its resurrection and subsequent\nmaintenance, please file an issue.\n\n### Versions\nVersions of Uno-Jar will generally attempt to maintain semantic version expected patterns.\nStarting with 1.1, major breaks in back compatibility will increment the major version.\nVersions before 1.1 have a lot of changes related to the porting/fork/adoption from One-Jar\nand may have some variation in back compatability. Also see our Java Version support policy on the wiki at:\n\nhttps://github.com/nsoft/uno-jar/wiki/Java-Version-Support\n\n\n## Disclaimer\nPlease note that I do not claim to have 100% fully understood Simon's code, so I may be breaking things\nin subtle ways, but so far the fixes taI have applied seem to have worked for me. Very happy to have\ncomments/suggestions.\n\n## Naming\nThe name \"uno-jar\" is due to Simon's license which forbids endorsement of my code\nwith the trade marked name of his project (he trademarked One-JAR). Therefore, aside\nfrom the discussion of differences from his work, attributions to his antecedent work\nand required licenses his name and the one-jar name will be removed from the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnsoft%2Funo-jar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnsoft%2Funo-jar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnsoft%2Funo-jar/lists"}