Skip to content

Fix fat jar build and update dependencies#146

Open
TheMeinerLP wants to merge 5 commits into
mainfrom
claude/titan-minestom-deployment-XhoNO
Open

Fix fat jar build and update dependencies#146
TheMeinerLP wants to merge 5 commits into
mainfrom
claude/titan-minestom-deployment-XhoNO

Conversation

@TheMeinerLP
Copy link
Copy Markdown
Contributor

Summary

This PR addresses issues with the fat jar build process and updates project dependencies to their latest versions.

Key Changes

  • Fat jar build fixes: Added exclusions to the jar task to handle LuckPerms' signed and multi-release jars that were breaking the relocation-free application fat jar:
    • Exclude signature files (META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA)
    • Exclude module-info classes (module-info.class, META-INF/versions/**/module-info.class)
    • Set duplicatesStrategy = DuplicatesStrategy.EXCLUDE to handle duplicate entries
  • Dependency updates:
    • Butterfly: 1.0.211.0.23
    • Minestom: Changed from unversioned to explicit version 2026.05.17-1.21.11
  • Workflow updates: Updated GitHub Actions workflow references to v2.1.0 for both build and publish workflows

Implementation Details

The fat jar exclusions specifically target artifacts pulled by LuckPerms' common module that contain signed JARs and multi-release JAR metadata. These were causing conflicts in the final application JAR. The duplicatesStrategy setting ensures consistent handling of any remaining duplicate entries during the merge process.

https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP

…n CI

- Pin net.minestom:minestom to 2026.05.17-1.21.11 (current Maven Central
  release) instead of the BOM-resolved version so the deployable jar runs
  on the latest Minestom regardless of aonyx/mycelium BOM lag.
- Bump butterfly 1.0.21 -> 1.0.23 to match the current Butterfly release.
- Harden the application shadowJar: strip jar signatures and module-info
  and exclude duplicates so the relocation-free fat jar built from the
  shaded LuckPerms fork stays loadable.
- Pin the reusable PR/publish workflows to the v2.1.0 release tag instead
  of a temporary branch ref.

https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP
@TheMeinerLP TheMeinerLP requested a review from a team as a code owner May 18, 2026 12:25
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

2 similar comments
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

Test results

0 tests   0 ✅  0s ⏱️
0 suites  0 💤
0 files    0 ❌

Results for commit c26dae7.

♻️ This comment has been updated with latest results.

Titan shaded net.luckperms common/minestom/minestom-app/loader-utils
into the relocation-free fat jar and bootstrapped LPMinestomBootstrap
directly on the app classpath, defeating LuckPerms' dependency
isolation. Switch to the LuckPerms-designed loader:

- depend on net.luckperms:minestom-loader (runtimeOnly, not shaded)
- net.luckperms:api becomes a runtime (implementation) dependency so
  LuckPermsProvider resolves on the host classpath while the JarInJar
  child loads the isolated implementation against the same API classes
- drop Titan's custom MinestomLoader; TitanApplication now uses the
  fork's me.lucko.luckperms.minestom.loader.MinestomLoader
- add the minestom-loader version catalog entry
- generalise the shadowJar signature/module-info hardening comment

https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

TitanApplication references me.lucko.luckperms.minestom.loader.MinestomLoader
directly, so the loader is needed at compile time; runtimeOnly removed it
from compileClasspath and broke compilation. Use implementation: the
minestom-loader artifact is a thin JarInJar wrapper with no heavy
transitive dependencies (adventure/configurate live inside the embedded
luckperms-minestom.jarinjar resource), so this does not reintroduce raw
shading of common/minestom.

https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

5 similar comments
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

Pinning Minestom to 2026.05.17-1.21.11 decoupled it from the OLF BOM
that also governs the cyano test harness; cyano 0.7.1 was built against
an older Minestom, so RegistryData's static initializer threw
NoSuchMethodError and all Minestom-backed tests failed. aonyx-bom 0.7.2
aligns cyano with Minestom 2026.05.17-1.21.11.

https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

2 similar comments
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

enforcedPlatform(mycelium-bom) pinned net.kyori:adventure-* classpath-
wide; the pinned Adventure was older than Minestom 2026.05.17-1.21.11
requires, so MinestomFlattenerProvider.<clinit> failed with
NoSuchMethodError: ComponentFlattener.toBuilder(). Switching to
platform(...) keeps the BOM as a version recommendation that Gradle can
upgrade to satisfy Minestom's transitive Adventure version requirement.
Applied in :common and :setup, the two modules using enforcedPlatform.

https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

2 similar comments
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Build PR :: build
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
titan build test 9.5.0 Build Scan not published

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants