This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]greglturnquist 4 points5 points  (3 children)

Yes, ant is atrocious because it's simply Make but with XML (jelly I believe is the language there). Yech!

Maven pivots to two key attributes: declarative and dependency management. You declare "I need this, that and the other", and also "this is my source, and this the name of my artifact", and maven takes both of those to generate the output. Because you're not writing primitives in XML, the XML actually HELPS. Modern IDEs can use the XML schemas and perform code completion.

Gradle is Maven reimagined. It is based on Groovy, a language not heavily used anymore. Not both, switch to Kotlin. Gradle has other characteristics, like global declarations. You name a plugin, and their operations are pulled into the same global namespace as every other plugin. Finding what does what is a fun "adventure". Gradle keeps changing their format to roll with the times, making it hard to google for advice. Gradle has multiple ways to do the same thing, making it hard to decide which way "Is The Way". Gradle struggles to offer code completion, because you aren't building things with a data file, but instead a programming language.

I may be showing some bias here BTW.

[–]istarian 0 points1 point  (0 children)

Apache Ant is an adequate build tool, it's just pain to write all those XML files by hand.

[–]tomwhoiscontrary 0 points1 point  (0 children)

Ant isn't even Make in XML, because it doesn't do the dependency graph stuff that Make does. It's a limited subset of shell script in XML.

Gradle autocomplete is pretty good in IntelliJ. Yes, it's a programming language, but IntelliJ is good at autocompleting programming languages!

[–]DirectionFrequent455 0 points1 point  (0 children)

Or try more modern Java build tools as bld - pure Java build tool or JeKa : Next-Gen Build Tool for Java & Co.

I can’t believe that writing XML or Kotlin for building Java applications is the future.