{"id":19281895,"url":"https://github.com/elide-dev/jpms","last_synced_at":"2025-04-22T01:31:20.595Z","repository":{"id":226669367,"uuid":"768908933","full_name":"elide-dev/jpms","owner":"elide-dev","description":"JPMS libraries and repository","archived":false,"fork":false,"pushed_at":"2025-04-16T21:19:47.000Z","size":352975,"stargazers_count":3,"open_issues_count":15,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-20T09:44:03.625Z","etag":null,"topics":["java","java-modules","jpms"],"latest_commit_sha":null,"homepage":"https://jpms.pkg.st","language":"XML","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/elide-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":".github/GOVERNANCE.md","roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-08T00:33:25.000Z","updated_at":"2025-02-18T01:01:31.000Z","dependencies_parsed_at":"2024-03-28T00:31:29.718Z","dependency_job_id":"dd86e4e6-65f7-4f6a-be07-65a8ae1cae9e","html_url":"https://github.com/elide-dev/jpms","commit_stats":null,"previous_names":["elide-dev/jpms"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elide-dev%2Fjpms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elide-dev%2Fjpms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elide-dev%2Fjpms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elide-dev%2Fjpms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elide-dev","download_url":"https://codeload.github.com/elide-dev/jpms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250161994,"owners_count":21385020,"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":["java","java-modules","jpms"],"created_at":"2024-11-09T21:24:36.165Z","updated_at":"2025-04-22T01:31:15.584Z","avatar_url":"https://github.com/elide-dev.png","language":"XML","readme":"\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./assets/img/modular-java-banner-txdark-md.png\"\u003e\n    \u003cimg height=300 alt=\"Java Modules\" src=\"./assets/img/modular-java-banner-txlight-md.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Java%209%2B-white?logoColor=F80000\u0026logo=oracle\" alt=\"Modular Java\" /\u003e\n\u003cimg src=\"https://img.shields.io/badge/Works%20with%20Kotlin-7F52FF?logoColor=white\u0026logo=kotlin\" alt=\"Kotlin\" /\u003e\n\u003cimg src=\"https://img.shields.io/badge/Works%20with%20Bazel-43A047?logoColor=white\u0026logo=bazel\" alt=\"Bazel\" /\u003e\n\u003cimg src=\"https://img.shields.io/badge/Works%20with%20Gradle-02303A?logoColor=white\u0026logo=gradle\" alt=\"Gradle\" /\u003e\n\u003cimg src=\"https://img.shields.io/badge/Works%20with%20Maven-C71A36?logoColor=white\u0026logo=apache-maven\" alt=\"Maven\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/elide-dev/jpms/actions/workflows/on.push.yml/badge.svg\" alt=\"Build status\" /\u003e\n\u003cimg src=\"https://img.shields.io/github/license/elide-dev/jpms?label=License\u0026labelColor=white\" alt=\"Apache 2.0 License\" /\u003e\n\u003ca href=\"https://elide.dev/discord\"\u003e\u003cimg src=\"https://img.shields.io/discord/1119121740161884252?b1\u0026label=Discord\u0026logo=discord\u0026labelColor=white\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr /\u003e\n\n# JPMS Attic Repository\n\n\u003e Latest Release: `1.0.9`\n\n- [GitHub Repo](https://github.com/javamodules/attic)\n- [Docs](https://javamodules.dev)\n\nThis repository provides sub-module library overrides for popular Java libraries which don't yet provide JPMS support\n(at least until some PRs are merged!). There is a Maven repository which contains these artifacts, too, so you can\nsafely use them in your projects.\n\n#### Pending PRs\n\nTracking issue [here][6] provides the best tracker. Once these PRs are merged and changes are released, this repo\nbecomes obsolete.\n\n### What's in the box?\n\n- **[`com.google.errorprone`][2]:** **Error Prone Compiler** \"is a static analysis tool for Java that catches common\n  programming mistakes at compile time,\" built by Google. Error Prone's annotations module is JPMS-enabled at the\n  embedded sub-module, and is used by Guava. The [PR enabling JPMS support in Error Prone Annotations][3] has been\n  filed, merged, and released, as [`2.26.1`](https://github.com/google/error-prone/releases/tag/v2.26.1).\n\n- **[`com.google.guava`][11]:** **Google Guava** is Google's core Java commons, used throughout Google's code and the\n  wider JVM ecosystem. Guava is an immensely popular artifact, with tons of fantastic utilities. JPMS support is [in\n  draft][12].\n\n- **[`com.google.j2objc`][4]:** **J2ObjC** is a Java to Objective-C cross-compiling layer used by Google to effectively\n  share Java logic on iOS and macOS platforms. J2ObjC itself is very complex and powerful, but here we have just\n  JPMS-enabled the `annotations` module, which is used by Guava. The [PR enabling JPMS support for J2ObjC\n  annotations][5] has been filed, merged, and released as\n  [`3.0.0`](https://github.com/google/j2objc/commit/a883dd3f90d51d5ccad4aa3af8feaaeed6560109).\n\n- **[`com.google.protobuf`][4]:** **Protocol Buffers** (a.k.a., protobuf) are Google's language-neutral,\n  platform-neutral, extensible mechanism for serializing structured data. JPMS support is [in draft][17].\n\n- **[`io.leangen.geantyref`][18]:** **Geantyref** is a fork of the excellent GenTyRef library, adding support for\n  working with AnnotatedTypes introduced in Java 8 plus many nifty features. JPMS support has been [proposed][19], but\n  not yet merged or released.\n\n- **[`kotlinx.collections.immutable`][20]:** **KotlinX Immutable Collections** is a library provided as part of the\n  _Kotlin Extensions_ suite, maintained by the JetBrains team. It provides immutable and persistent collection types in\n  Kotlin. JPMS support is in [draft][21], but not yet merged or released.\n\n- **[`org.apache.maven.resolver`][22]:** **Maven Resolver** is how Maven and many other build tools resolve graphs of\n  dependencies, and perform downloads of dependency artifacts. JPMS support is in early draft; no PR has been filed yet.\n\n- **[`org.checkerframework`][0]:** **Checker Framework** is a type-checking framework for Java. The `checker-qual`\n  package is used by Guava, so it is included here transitively. Checker Framework added a JPMS module definition in a\n  [recent PR][1], so this is sub-moduled at `master`. At the time of this writing no release has taken place.\n\n- **[`org.reactivestreams`][16]:** **Reactive Streams** is a universal JVM API for building reactive software in an\n  implementation-agnostic manner.\n\n### How do I use it?\n\nAdd this domain as a repository within any JVM build tool: [Maven][7], [Gradle][8], [Bazel][9], [sbt][10]. For example:\n\n\u003e [!NOTE]\n\u003e **Filing issues:** Please file issues for this repo on [`elide-dev/jpms`](https://github.com/elide-dev/jpms/issues).\n\n#### Maven\n\n**In a `pom.xml`:**\n\n```xml\n\u003crepositories\u003e\n  \u003crepository\u003e\n    \u003cid\u003ejpms-attic\u003c/id\u003e\n    \u003cname\u003eJPMS Attic\u003c/name\u003e\n    \u003curl\u003ehttps://jpms.pkg.st/repository\u003c/url\u003e\n  \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n**In a `settings.xml`:**\n\n```xml\n\u003cprofiles\u003e\n  \u003cprofile\u003e\n    \u003cid\u003ejpms-attic\u003c/id\u003e\n    \u003cactivation\u003e\n      \u003cactiveByDefault\u003etrue\u003c/activeByDefault\u003e\n    \u003c/activation\u003e\n    \u003crepositories\u003e\n      \u003crepository\u003e\n        \u003cid\u003epkgst-jpms\u003c/id\u003e\n        \u003cname\u003ePkgst JPMS\u003c/name\u003e\n        \u003curl\u003ehttps://jpms.pkg.st/repository\u003c/url\u003e\n      \u003c/repository\u003e\n    \u003c/repositories\u003e\n  \u003c/profile\u003e\n\u003c/profiles\u003e\n```\n\n#### Gradle\n\n##### Groovy\n\n```groovy\nrepositories {\n    maven {\n        url \"https://jpms.pkg.st/repository\"\n    }\n}\n```\n\n##### Kotlin\n\n```kotlin\nrepositories {\n    maven {\n        url = uri(\"https://jpms.pkg.st/repository\")\n    }\n}\n```\n\n### Libraries\n\nYou should use a JPMS-enabled library version which has no conflict with Maven Central. Reference the table below to\npick a library.\n\n**Libraries marked `Central` have seen releases in Maven Central,** and so are no longer needed through this repository.\n\n| Coordinate                                                     | Version                                                                                                                                                                                                                                            |\n| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `com.google.errorprone:error_prone_annotations`                | ![Central](https://img.shields.io/maven-central/v/com.google.errorprone/error_prone_annotations?label=Central\u0026labelColor=blue)                                                                                                                     |\n| `com.google.guava:guava`                                       | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fcom%2Fgoogle%2Fguava%2Fguava%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                                         |\n| `com.google.j2objc:j2objc-annotations`                         | ![Central](https://img.shields.io/maven-central/v/com.google.j2objc/j2objc-annotations?label=Central\u0026labelColor=blue)                                                                                                                              |\n| `com.google.protobuf:protobuf-java`                            | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fcom%2Fgoogle%2Fprotobuf%2Fprotobuf-java%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                              |\n| `com.google.protobuf:protobuf-javalite`                        | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fcom%2Fgoogle%2Fprotobuf%2Fprotobuf-javalite%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                          |\n| `com.google.protobuf:protobuf-util`                            | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fcom%2Fgoogle%2Fprotobuf%2Fprotobuf-util%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                              |\n| `com.google.protobuf:protobuf-kotlin`                          | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fcom%2Fgoogle%2Fprotobuf%2Fprotobuf-kotlin%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                            |\n| `com.google.protobuf:protobuf-kotlin-lite`                     | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fcom%2Fgoogle%2Fprotobuf%2Fprotobuf-kotlin-lite%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                       |\n| `io.leangen.geantyref:geantyref`                               | ![Central](https://search.maven.org/artifact/io.leangen.geantyref/geantyref/2.0.0/jar)                                                                                                                                                             |\n| `org.apache.maven.resolver:maven-resolver-api`                 | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-api%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                 |\n| `org.apache.maven.resolver:maven-resolver-connector-basic`     | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-connector-basic%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)     |\n| `org.apache.maven.resolver:maven-resolver-generator-gnupg`     | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-generator-gnupg%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)     |\n| `org.apache.maven.resolver:maven-resolver-impl`                | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-impl%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                |\n| `org.apache.maven.resolver:maven-resolver-named-locks`         | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-named-locks%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)         |\n| `org.apache.maven.resolver:maven-resolver-spi`                 | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-spi%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                 |\n| `org.apache.maven.resolver:maven-resolver-transport-classpath` | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-transport-classpath%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black) |\n| `org.apache.maven.resolver:maven-resolver-transport-file`      | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-transport-file%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)      |\n| `org.apache.maven.resolver:maven-resolver-transport-jdk`       | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-transport-jdk%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)       |\n| `org.apache.maven.resolver:maven-resolver-transport-jetty`     | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-transport-jetty%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)     |\n| `org.apache.maven.resolver:maven-resolver-util`                | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fapache%2Fmaven%2Fresolver%2Fmaven-resolver-util%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                |\n| `org.checkerframework:checker-qual`                            | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fcheckerframework%2Fchecker-qual%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                                |\n| `org.jetbrains.kotlinx:kotlinx-collections-immutable`          | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Fjetbrains%2Fkotlinx%2Fkotlinx-collections-immutable%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)            |\n| `org.reactivestreams:reactive-streams`                         | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Forg%2Freactivestreams%2Freactive-streams%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)                             |\n\n### Using the modules\n\nUse the modules in your `module-info.java`:\n\n| Coordinate                                                     | Module                                          |\n| -------------------------------------------------------------- | ----------------------------------------------- |\n| `com.google.errorprone:error_prone_annotations`                | `com.google.errorprone.annotations`             |\n| `com.google.guava:guava`                                       | `com.google.common`                             |\n| `com.google.j2objc:j2objc-annotations`                         | `com.google.j2objc.annotations`                 |\n| `com.google.protobuf:protobuf-java`                            | `com.google.protobuf`                           |\n| `com.google.protobuf:protobuf-javalite`                        | `com.google.protobuf`                           |\n| `com.google.protobuf:protobuf-util`                            | `com.google.protobuf.util`                      |\n| `com.google.protobuf:protobuf-kotlin`                          | `com.google.protobuf.kotlin`                    |\n| `com.google.protobuf:protobuf-kotlin-lite`                     | `com.google.protobuf.kotlin`                    |\n| `io.leangen.geantyref:geantyref`                               | `io.leangen.geantyref`                          |\n| `org.apache.maven.resolver:maven-resolver-api`                 | `org.apache.maven.resolver`                     |\n| `org.apache.maven.resolver:maven-resolver-connector-basic`     | `org.apache.maven.resolver.connector.basic`     |\n| `org.apache.maven.resolver:maven-resolver-generator-gnupg`     | `org.apache.maven.resolver.generator.gnupg`     |\n| `org.apache.maven.resolver:maven-resolver-impl`                | `org.apache.maven.resolver.impl`                |\n| `org.apache.maven.resolver:maven-resolver-named-locks`         | `org.apache.maven.resolver.named`               |\n| `org.apache.maven.resolver:maven-resolver-spi`                 | `org.apache.maven.resolver.spi`                 |\n| `org.apache.maven.resolver:maven-resolver-transport-classpath` | `org.apache.maven.resolver.transport.classpath` |\n| `org.apache.maven.resolver:maven-resolver-transport-file`      | `org.apache.maven.resolver.transport.file`      |\n| `org.apache.maven.resolver:maven-resolver-transport-jdk`       | `org.apache.maven.resolver.transport.jdk`       |\n| `org.apache.maven.resolver:maven-resolver-transport-jetty`     | `org.apache.maven.resolver.transport.jetty`     |\n| `org.apache.maven.resolver:maven-resolver-util`                | `org.apache.maven.resolver.util`                |\n| `org.checkerframework:checker-qual`                            | `org.checkerframework.checker.qual`             |\n| `org.jetbrains.kotlinx:kotlinx-collections-immutable`          | `kotlinx.collections.immutable`                 |\n| `org.reactivestreams:reactive-streams`                         | `org.reactivestreams`                           |\n\n\u003e By and large, where a module already had an `Automatic-Module-Name`, it has been preserved.\n\n### BOMs \u0026 Catalogs\n\nThis repository additionally provides [Maven BOM][13], [Gradle Version Catalog][14], and [Gradle Platform][15]\nartifacts. These simplify and enforce the use of the right library versions. See below for use.\n\n| Type                  | Coordinate                      | Version                                                                                                                                                                                                         |\n| --------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [Maven BOM][13]       | `dev.javamodules:jpms-bom`      | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fdev%2Fjavamodules%2Fjpms-bom%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)      |\n| [Gradle Catalog][14]  | `dev.javamodules:jpms-catalog`  | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fdev%2Fjavamodules%2Fjpms-catalog%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black)  |\n| [Gradle Platform][15] | `dev.javamodules:jpms-platform` | ![JPMS](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fjpms.pkg.st%2Frepository%2Fdev%2Fjavamodules%2Fjpms-platform%2Fmaven-metadata.xml\u0026logo=maven\u0026label=JPMS\u0026labelColor=white\u0026color=black) |\n\n#### Using the Version Catalog\n\nTo use the version catalog from Gradle, follow the setup steps below. These code samples are provided in Kotlin:\n\n**`settings.gradle.kts`**:\n\n```kotlin\ndependencyResolutionManagement {\n  repositories {\n    mavenCentral()\n\n    maven {\n      name = \"jpms-attic\"\n      url = uri(\"https://jpms.pkg.st/repository\")\n    }\n  }\n\n  versionCatalogs {\n    create(\"attic\") {\n      from(\"dev.javamodules:jpms-catalog:1.0.9\")\n    }\n  }\n}\n```\n\n**`build.gradle.kts`**:\n\n```kotlin\ndependencies {\n  api(attic.guava)\n}\n```\n\n#### Using the Gradle Platform\n\nTo use the Gradle Platform to constrain your versions, map the repository as usual, then:\n\n```kotlin\ndependencies {\n  api(platform(\"dev.javamodules:jpms-platform:1.0.9\"))\n}\n```\n\nThe Version Catalog also provides a mapping:\n\n```kotlin\ndependencies {\n  api(platform(attic.javamodules.platform))\n}\n```\n\n### Limitations\n\nThis repo does not currently publish source or javadoc JARs. It's not that it couldn't, it's just that mounting\nclassifier-equipped JARs in local repositories is annoying.\n\n### Sample Projects\n\nSample projects are provided in the [samples](./samples) directory, which show how to hook up the repository and\noverride libraries.\n\n### Coming soon\n\nFuture badges\n\n![SLSA](https://img.shields.io/badge/SLSA-white?logoColor=white\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB2aWV3Qm94PSIwIDAgMjggMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI%2BPGRlZnM%2BPGNsaXBQYXRoIGlkPSJjbGlwMF8xMjNfMTEyNyI%2BPHBhdGggZD0iTTAgNS42QzAgMi41MDcyMSAyLjUwNzIxIDAgNS42IDBIMjIuNEMyNS40OTI4IDAgMjggMi41MDcyMSAyOCA1LjZWMjIuNEMyOCAyNS40OTI4IDI1LjQ5MjggMjggMjIuNCAyOEg1LjZDMi41MDcyMSAyOCAwIDI1LjQ5MjggMCAyMi40VjUuNloiIGZpbGw9IndoaXRlIi8%2BPC9jbGlwUGF0aD48L2RlZnM%2BPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEyM18xMTI3KSIgdHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgMSwgLTguODgxNzg0MTk3MDAxMjUyZS0xNiwgLTMuNTUyNzEzNjc4ODAwNTAxZS0xNSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjYuMTA1MiAzLjA2MzY4ZS0wNUwyNi4xODIyIC0wLjA4NzA1NTdMMjQuNjgzNiAtMS40MTE1TDI0LjAyMTQgLTAuNjYyMTkxQzIzLjgyMzcgLTAuNDM4NTA2IDIzLjYyMzIgLTAuMjE3NzUyIDIzLjQxOTkgMy4wNjM2OGUtMDVIMi44NjEwMmUtMDZWMS41NTg0MUwtMS4zNzU5OCAyLjQwNjQ2TC0wLjg1MTI5NyAzLjI1Nzc2Qy0wLjU3NjYwMiAzLjcwMzQ2IC0wLjI5MjcyNyA0LjE0MTY4IDIuODYxMDJlLTA2IDQuNTcyMjRWMjMuMjU2NEMtMC4wMDY3ODE4MiAyMy4yNTY2IC0wLjAxMzU2NjkgMjMuMjU2NyAtMC4wMjAzNTIxIDIzLjI1NjlMLTEuMDIwMTQgMjMuMjc3MkwtMC45Nzk0MzUgMjUuMjc2OEwyLjg2MTAyZS0wNiAyNS4yNTY5VjI4SDI4VjEwLjI2MzJDMjguMjg4MSA5Ljg0ODU1IDI4LjU2NzkgOS40MjY2MiAyOC44MzkyIDguOTk3NTlDMjkuMjk0OSA4LjMxMTczIDI5LjYzMzMgNy43MjUzMiAyOS44NTk4IDcuMzA2QzI5Ljk3MzcgNy4wOTUyMSAzMC4wNTk1IDYuOTI2MjkgMzAuMTE3OCA2LjgwNzc2QzMwLjE0NyA2Ljc0ODQ5IDMwLjE2OTMgNi43MDE3OCAzMC4xODQ5IDYuNjY4N0wzMC4yMDMyIDYuNjI5NDJMMzAuMjA4NiA2LjYxNzY5TDMwLjIxMDQgNi42MTM4NEwzMC4yMTEgNi42MTI0M0wzMC4yMTEzIDYuNjExODVMMzAuMjExNCA2LjYxMTU5QzMwLjIxMTQgNi42MTE0OCAzMC4yMTE1IDYuNjExMzYgMjkuMzU1NyA2LjIyNTE1TDMwLjIxMTUgNi42MTEzNkwzMC42MjI4IDUuNjk5ODdMMjguNzk5OCA0Ljg3NzIyTDI4LjM4OSA1Ljc4NzU4TDI4LjM4ODkgNS43ODc3OUwyOC4zODg4IDUuNzg3OTdMMjguMzg4NyA1Ljc4ODNMMjguMzg4NiA1Ljc4ODQ5TDI4LjM4ODUgNS43ODg3TDI4LjM4NjkgNS43OTIxOUwyOC4zNzU2IDUuODE2NTFDMjguMzY0NyA1LjgzOTUgMjguMzQ3NCA1Ljg3NTgzIDI4LjMyMzQgNS45MjQ0OEMyOC4yNzU1IDYuMDIxOCAyOC4yMDEzIDYuMTY4MjQgMjguMTAwMiA2LjM1NTQ4QzI4LjA2OTMgNi40MTI2NyAyOC4wMzU5IDYuNDczNjIgMjggNi41MzgxMVYzLjA2MzY4ZS0wNUgyNi4xMDUyWk0yNi4xMDUyIDMuMDYzNjhlLTA1SDIzLjQxOTlDMTkuMDEwNiA0LjcyMzcgMTMuMzAxNSA4LjA0OTI3IDcuMDIxNTMgOS41NTU4QzQuNjQ2NTcgNy40NDc2NyAyLjU2MDU2IDQuOTgxNjkgMC44NTEzMDMgMi4yMDg0TDAuMzI2NjIzIDEuMzU3MUwyLjg2MTAyZS0wNiAxLjU1ODQxVjQuNTcyMjRDMS43NDE1MyA3LjEzMzczIDMuNzk2NDggOS40MjQgNi4wOTY0NyAxMS40MDM1QzkuNDAyNDQgMTQuMjQ4NyAxMy4yMTQ3IDE2LjQ1MTggMTcuMzMwNCAxNy44OTU2QzEzLjg0NTcgMjAuMTczMSA5LjkzNzk1IDIxLjc4NTMgNS44MDgwMSAyMi42MTY2QzMuOTEyNTIgMjIuOTk4MSAxLjk3MDA4IDIzLjIxNTEgMi44NjEwMmUtMDYgMjMuMjU2NFYyNS4yNTY5TDAuMDIwMzU3OCAyNS4yNTY0QzIuMTE3MTcgMjUuMjEzOCA0LjE4NDg5IDI0Ljk4MzQgNi4yMDI2NCAyNC41NzcyQzExLjI4MzIgMjMuNTU0NiAxNi4wNDYxIDIxLjQxODEgMjAuMTU5NyAxOC4zNTkzQzIzLjE2MTggMTYuMTI3MSAyNS44MTgzIDEzLjQwMzUgMjggMTAuMjYzMlY2LjUzODExQzI3LjgwMDcgNi44OTYyNiAyNy41MjQxIDcuMzYzNTEgMjcuMTY3NCA3Ljg5OTcxTDI3LjE2MDkgNy45MDk1MkwyNy4xNTQ2IDcuOTE5NDhDMjUuMDUyMiAxMS4yNDczIDIyLjQwMjggMTQuMTIyNiAxOS4zNjIxIDE2LjQ1NTRDMTUuNTg1OSAxNS4zMTM2IDEyLjA1MTMgMTMuNTAzOCA4LjkyNjI4IDExLjEyM0MxNS4zMjI3IDkuMjk3MTkgMjEuMDkxNSA1LjY3MzA5IDI1LjUyIDAuNjYyMjUyTDI2LjEwNTIgMy4wNjM2OGUtMDVaIiBmaWxsPSIjRkY2NzQwIi8%2BPC9nPjwvc3ZnPg%3D%3D)\n![SPDX](https://img.shields.io/badge/SPDX-white?logoColor=white\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCA1MiA1MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTk3OV8zOTgiIHgxPSI4LjQ4NTgxIiB5MT0iNS4yMDgwNiIgeDI9IjI3LjcwMzQiIHkyPSIyOS42MTc3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI%2BPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMC4zNDk0IiBzdG9wLWNvbG9yPSIjQ0RDQ0NDIiBzdG9wLW9wYWNpdHk9IjAuMjI2NjgiLz48c3RvcCBvZmZzZXQ9IjAuODg5IiBzdG9wLWNvbG9yPSIjNDU0MTQyIiBzdG9wLW9wYWNpdHk9IjAuODQ2OTgiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzFGMjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJNMTMuMzA0MiAxNC42NjhIMzYuNDUwMUw0NS45Njc2IDUuMDI2NzNIMy43MjU2NVY1LjE4NTczVjE0LjU1N1Y0Ny40OTdMMTMuMzA0MiAzNy45MTY1VjE0LjY2OFoiIGZpbGw9IiMwMDM3NzgiLz48cGF0aCBvcGFjaXR5PSIwLjgiIGQ9Ik0xMy4zMDQyIDE0LjY2OEgzNi40NTAxTDQ1Ljk2NzYgNS4wMjY3M0gzLjcyNTY1VjUuMTg1NzNWMTQuNTU3VjQ3LjQ5N0wxMy4zMDQyIDM3LjkxNjVWMTQuNjY4WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzE5NzlfMzk4KSIvPjxwYXRoIGQ9Ik0zNi40NTAxIDE0LjY2NzlMMTMuMzA0MiAzNy45MTY0TDMuNzI1NjUgNDcuNTA4MkgxMy4zMDQySDE3LjY3ODlMMjYuMTc1NSAzOC44MTk0VjMwLjA5MzJWMjcuNjIzNEgyOC42Nzc3SDM3LjM0NUw0NS45MzE4IDE5LjAxNzlWMTQuNjY3OVY0Ljk3NzE3TDM2LjQ1MDEgMTQuNjY3OVoiIGZpbGw9IiMwMDk0RkYiLz48cGF0aCBkPSJNMjguNTcwNCAzMC4wMzMyVjM2LjQyNFY0Ny41MDgySDQ1LjkzMThWMzAuMDMzMkgzNC45NjU4SDI4LjU3MDRaIiBmaWxsPSIjMDA5NEZGIi8%2BPC9zdmc%2B)\n\n### Licensing\n\nThis repo is open source, licensed under [Apache 2.0](./LICENSE.txt). The libraries listed in this repo may have their\nown licenses; it is up to you to comply with these. These libraries are only published here for the purpose of early\ntesting and development against new code; no warranty is provided of any kind.\n\n[0]: https://github.com/typetools/checker-framework\n[1]: https://github.com/typetools/checker-framework/pull/6326\n[2]: https://github.com/sgammon/error-prone\n[3]: https://github.com/google/error-prone/pull/4311\n[4]: https://github.com/google/j2objc\n[5]: https://github.com/google/j2objc/pull/2302\n[6]: https://github.com/elide-dev/jpms/issues/1\n[7]: https://maven.apache.org/guides/mini/guide-multiple-repositories.html\n[8]: https://docs.gradle.org/current/userguide/declaring_repositories.html\n[9]: https://github.com/bazelbuild/rules_jvm_external/blob/master/docs/api.md#maven_install-repositories\n[10]: https://www.scala-sbt.org/1.x/docs/Resolvers.html\n[11]: https://github.com/google/guava\n[12]: https://github.com/sgammon/guava/pull/14\n[13]: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms\n[14]: https://docs.gradle.org/current/userguide/platforms.html\n[15]: https://docs.gradle.org/current/userguide/dependency_version_alignment.html\n[16]: https://github.com/reactive-streams/reactive-streams-jvm\n[17]: https://github.com/protocolbuffers/protobuf/pull/16178\n[18]: https://github.com/leangen/geantyref\n[19]: https://github.com/leangen/geantyref/pull/29\n[20]: https://github.com/Kotlin/kotlinx.collections.immutable\n[21]: https://github.com/Kotlin/kotlinx.collections.immutable/pull/175\n[22]: https://maven.apache.org/resolver/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felide-dev%2Fjpms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felide-dev%2Fjpms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felide-dev%2Fjpms/lists"}