SpongePowered / SpongeGradle

Handy gradle utilities for the various gradle projects of SpongePowered
MIT License
21 stars 16 forks source link

Something Old, Something New, Something Borrowed, Something Gradle #22

Closed gabizou closed 5 years ago

gabizou commented 5 years ago

SpongeGradle | SpongeAPI | SpongeCommon | SpongeForge | SpongeVanilla

A whole new coat of paint

SpongeGradle has served the Sponge project for quite some time, and it's been a hodgepodge of things smashed together with no real "standard" or "cohesion". A problem I've arrived at attempting to upgrade Sponge's build scripts has been some legacy concepts from Gradle 2.x persisted into today, and the lack of documentation instruction about what SpongeGradle provides, along with several [existing scripts]() that [depend on eachother]() gave me cause for migrating those scripts into SpongeGradle proper.

Target Goals

Clearer Plugin Setup

Migrate Sponge project mini-plugin scripts

Four mini-plugin scripts have interdependencies amongst eachother to set up the SpongeAPI project, and it's related projects, along with deploying, providing an implementation that depends on SpongeCommon, and finally, sets up the overall minecraft dependency for ForgeGradle. What this leads is to a confusing and rather obscene mess any time something in those scripts needs to be changed, or when some handling for how the dependency is set up.

Explicit Plugins for PluginDevelopers

Previously, it's been simply recommended to use org.spongepowered.meta as a plugin