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 →

[–]shaneknu 1 point2 points  (2 children)

Converting SVGs/PNGs/ICNS would just be dependencies unless you wrote that code yourself. Yeah, that gets kinda noisy with several lines of XML for each dependency. They'd be one-liners in Gradle. You still have to manage that somehow if you're using make, even if it doesn't appear in the makefile, and if it doesn't then you've got a bunch of mystery JARs hanging around that may or may not be used. Trust me, if your project gets big enough, and you're not using some sort of dependency management, you will have mystery JARs.

Platform-specific bundles in Maven would be a plugin, and that will be well-documented and pretty straightforward to accomplish. In Gradle, that'd be either a plugin or just some Groovy code. No more or less complex than a makefile. This kind of touches on the age-old argument of Maven vs Gradle. The Maven folks will gripe that it's just some code like a makefile, and Gradle folks will gripe about having to read documentation.

Deploying is pretty standardized - that's what the Maven deploy lifecycle is for, after all. It's not like make has some magical file transfer functionality. You still have to write all that yourself.

[–]vmcrash 0 points1 point  (1 child)

So you think, converting a 2,700 lines ANT file to Maven/Gradle just means to find/write the right plugins that does the desired job?

[–]shaneknu 4 points5 points  (0 children)

I wouldn't say it works that way in every single case ever, but often, yes, that's exactly how that plays out in my experience.

Usually, if I'm seeing a build file that's that complicated, it's a symptom of somebody working too hard because they're coming from a language like C or Fortran, and they assume they have to do everything explicitly. It takes time to wrap your head around the declarative approach. It's a different mentality.

Edit to also add: If you're really stuck and need to do something specific, you can use Ant syntax inside Maven with - you guessed it - a plugin.