/MavenLoader

A custom external dependency loader is prepended to easily reduce the package size.

Primary LanguageJavaApache License 2.0Apache-2.0

MavenLoader

A custom external dependency loader is prepared to easily reduce the package size.

Required

  • Java 17+
  • Velocity 3.3.0 ↔ latest (Optional)
  • BungeeCord 1.18 ↔ latest (Optional)
  • Spigot/Paper/Folia 1.18.2 ↔ latest (Optional)

Plugin Compatibility

  • PlugManX (1.6-SNAPSHOT will not be provided, and it may be provided in future updates.)

Test Information

Versions starting from 1.18.2 should work fine.

if you have problems, please open an issues and give me the log and your environment information.

  • Java 23 (Specified as 21 in Spigot and BungeeCord)
  • Spigot 1.21 latest
  • Folia 1.21.1 latest
  • ShreddedPaper 1.20.6 latest
  • BungeeCord 1.21 a89cf5f:1869
  • Velocity 3.3.0-SNAPSHOT git-2016d148-b436

Download

All places use the same build pack, I just left these links to let you know I'm only releasing it in these places.

Usage

1.4-SNAPSHOT introduced a repository whitelist mechanism to try to avoid some untrusted repositories from loading malicious dependencies.

Server

You need to add the following parameters to the Java startup parameters to enable it normally.

--add-opens=java.base/java.net=ALL-UNNAMED

Then download MavenLoader and put it in the Server plugin directory. It is recommended to keep MavenLoader the latest version.

Please confirm whether the plugin that relies on MavenLoaderAPI loads trusted dependencies and pay attention to safety.

Developer

Docs in: DEVELOPER_DOCS

Updater API in: USE_UPDATER

Example in: MavenLoader-Example

Compatibility

  • 1.2-SNAPSHOT: Implementing maven.yml
  • 1.4-SNAPSHOT: Implementing repository whitelist
  • 1.5-SNAPSHOT: Support Bukkit
  • 1.6-SNAPSHOT (Coming soon): Support BungeeCord. maven.yml support platform, reference-load keyword. Remove external API (now only allow maven.yml)

Config

enable_whitelist: true # Enable repository whitelist, default is true
# repository whitelist list
whitelist:
  - https://repo.maven.apache.org/maven2
  - https://repo.maven.apache.org/maven2
  - https://oss.sonatype.org/content/groups/public/
  - https://repository.jboss.org/nexus/content/groups/public
  - https://maven-central-asia.storage-download.googleapis.com/maven2/
  - https://maven-central-eu.storage-download.googleapis.com/maven2/
  - https://maven-central.storage-download.googleapis.com/maven2/
  - https://jitpack.io
  - https://hub.spigotmc.org/nexus/content/repositories/snapshots/
  - https://repo.papermc.io/repository/maven-public/
  - https://repo.repsy.io/mvn/rdb/default
updater:
  check: true
  source: github # Update Channel, Support: github, spigot, spiget, modrinth, hangar
  simple-mode: true # Sacrifice some detection accuracy in exchange for some performance. (default: true)

Statistics