Skip to content

Standards & Tooling: Implement Gradle & Use Conventional Source Paths#7

Open
TheFlagCourier wants to merge 5 commits intoTheNewEconomy:masterfrom
TheFlagCourier:master
Open

Standards & Tooling: Implement Gradle & Use Conventional Source Paths#7
TheFlagCourier wants to merge 5 commits intoTheNewEconomy:masterfrom
TheFlagCourier:master

Conversation

@TheFlagCourier
Copy link
Copy Markdown

@TheFlagCourier TheFlagCourier commented Aug 5, 2025

This PR addresses three primary things:

  • Applies resource filtering (Both Maven & Gradle) [Prior oversight?]
  • Uses standardized source and resources paths
  • Implements the Gradle build system (Gradle 9.0.0)

Standardized Source & Resource Paths

  • src/net/ > src/main/java/net/
  • create src/main/resources/
  • move plugin.yml to src/main/resources/
  • copy license.txt to resource directory (not written to plugins directory, yet; still contained in the JAR)
  • Update Maven's pom to point to new directories and include the license.

Gradle Implementation

  • Based on the implementation effort found in VaultUnlockedAPI
  • Uses Shadow to shade & relocate bstats; and apply manifest attributes.
  • Publication will publish the ShadowJar (Mimics Maven)
  • Jar task will build the unshaded jar with -original qualifier suffix.

This is a precursor to implementing gradle, without being overly "hacky". And it's simply a sane way to structure the project for broad compatibility.

- src/net/ > src/main/java/net/
- create src/main/resources/
- move plugin.yml to src/main/resources/
- copy license.txt to resource directory
- Update pom to point to new directories.
Implement Gradle Build
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Aug 9, 2025

CLA assistant check
All committers have signed the CLA.

@TheFlagCourier TheFlagCourier changed the title Standardization: Relocate files to conventional locations. Standards & Tooling: Implement Gradle & Use Conventional Source Paths Aug 9, 2025
@creatorfromhell
Copy link
Copy Markdown
Member

This PR addresses three primary things:

  • Applies resource filtering (Both Maven & Gradle) [Prior oversight?]
  • Uses standardized source and resources paths
  • Implements the Gradle build system (Gradle 9.0.0)

Standardized Source & Resource Paths

  • src/net/ > src/main/java/net/
  • create src/main/resources/
  • move plugin.yml to src/main/resources/
  • copy license.txt to resource directory (not written to plugins directory, yet; still contained in the JAR)
  • Update Maven's pom to point to new directories and include the license.

Gradle Implementation

  • Based on the implementation effort found in VaultUnlockedAPI
  • Uses Shadow to shade & relocate bstats; and apply manifest attributes.
  • Publication will publish the ShadowJar (Mimics Maven)
  • Jar task will build the unshaded jar with -original qualifier suffix.

Just noticed this one is complete now, is it working properly?

@TheFlagCourier
Copy link
Copy Markdown
Author

@creatorfromhell Should be good to go, if you're happy with how it builds. The main point of contention would be the changing of the source directory path - which may require other branches / forks / prs to be rebased.

@creatorfromhell
Copy link
Copy Markdown
Member

@creatorfromhell Should be good to go, if you're happy with how it builds. The main point of contention would be the changing of the source directory path - which may require other branches / forks / prs to be rebased.

That sounds good with me. Cheers.

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.

3 participants