Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Switch from Maven to Gradle for building #187

Open
PhRX opened this issue Feb 10, 2017 · 0 comments
Open

Switch from Maven to Gradle for building #187

PhRX opened this issue Feb 10, 2017 · 0 comments

Comments

@PhRX
Copy link
Contributor

PhRX commented Feb 10, 2017

I propose to switch the build system to gradle, for the following reasons :

  1. gradle build files are way more concise
    Length current pom.xml : 244 lines
    Length build.gradle + gradle.settings : 92 lines
    (and I think this already includes more functionality on the gradle part)

  2. gradle java plugin offers a variety of default tasks, including generating javadoc (but maybe that is in maven by default too ?) :

  • ./gradlew javadoc (generates the javadoc)
  • ./gradlew run (runs the application; the build file includes the logic for the tools issue, so we can get rid of the platform-specific cli scripts entirely; and that logic is just a simple platform-independent inclusion)
  1. there is a gradle javafx plugin which can be used to build distributions really easily, even packaging a JRE with it. The end result is an archive (zip or whatever) containing an executable you can just click and it runs. Distributions can be generated for every platform. It works, I did this in the past on another project.

  2. you don't even need to have gradle installed. The gradle wrapper mechanism (which is the gradlew script in the root dir) wraps the "gradle" command, and downloads and uses the gradle binaries for your platform automatically (version specified in build file)

Of course, learning gradle isn't necessarily easy, but AFAICS the current build file does most or all of what the current pom.xml does and maybe already even more, so I'd say that's a good base.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant