Maven run-time utilizing Maven Wrapper #DevEx
dlehammer opened this issue ยท 6 comments
The Maven version supported by this code-base isn't specified in the documentation.
This is a potential risk, as the current implementation might not be compatible with new Maven releases.
I suggest encapsulating this in the code, by utilizing the Maven Wrapper a.k.a. mvnw
.
Hence no need to document or force the user to setup a environment for a specific Maven-version, instead this is handled implicitly ๐ค
I think this is also slightly less relevant for most developers looking to target CoreProtect's API - I say this because you've linked to the documentation, but the built API is published to a Maven repository, and therefore those building against the API can just fetch the dependency from the Maven repository instead of building the project themselves. Maven wrapper usage is funnily enough not very common - in Gradle-based projects it is a pretty standard practice but Maven hasn't historically faced the same significant breaking changes with their build tool. Regardless this was a cool suggestion to read through because I had not heard of the official one until now
Hi @CyberFlameGO,
Thanks for taking the time to reply, regarding:
I think this is also slightly less relevant for most developers looking to target CoreProtect's API - I say this because you've linked to the documentation, but the built API is published to a Maven repository, and therefore those building against the API can just fetch the dependency from the Maven repository instead of building the project themselves.
My aim is to minimize ambiguity by encapsulating (part of) the build tooling for this repo, my intention is to lower the bar for any contributor to this repo going forward.
By codifying it with a wrapper, there's no need to also document how to configure a Maven development environment.
On top of that you can easily test out new Maven versions in a branch by changing the version in the .mvn/wrapper/maven-wrapper.properties
.
Maven wrapper usage is funnily enough not very common - in Gradle-based projects it is a pretty standard practice but Maven hasn't historically faced the same significant breaking changes with their build tool.
Heh, I hadn't even spotted the build.gradle
๐
I would similarly suggest the Gradle wrapper, for the same reasons ๐ค