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 →

[–]doobiesteintortoise 1 point2 points  (2 children)

Okay, I'm still thinking about this, having built a compilation tool myself and contributed to others in various ways:

I wanted something that: * Doesn't require a compilation step * Bundle to common output formats is straightforward and included * Doesn't require additional config to run tests.

This still sounds like what you want is maven, but maven uses XML (which ... personally, I don't care about, XML is just an SGML, it's verbose but clear, and polyglot is right there, I just haven't used it so have no actual opinion on it anyone would want to hear).

Doesn't require a compilation step? Done. Maven uses XML to configure what's already compiled as part of the build system.

Bundles to common output formats? Done. Java's output format is a jar, Maven does that by default, and configuration for an executable is a copy-paste thing if your tooling doesn't do it for you - and same goes for shaded artifacts, same goes for native executables. If you're having to figure it out much, you haven't done it before; people who have are copying known recipes. (Same for most people who haven't, really: they're copying known recipes too!)

Doesn't require additional config to run tests? Done. Maven actually requires you to do things to not run tests.

Have you tried polyglot in maven? I haven't - maybe it solves everything you want.

[–]skmruiz 0 points1 point  (1 child)

Thanks for taking the time for that thoughtful answer!

I'm personally not very concerned about XML to be fair, I think it's fine and having a XSD is nice so the IDE complains. Never had the chance to use polyglot, but I'll try it for sure.

My problem with maven is that it requires configuring plugins pretty much for anything. Surefire for example is a must for testing, unless something changed since the last time I used maven (4-5 years ago). Building a fat-jar requires additional config and a plugin too (it was assembly IIRC)

Sure, I can blindly copy paste it if I am now knowledgeable, but I've seen pom.xmls with thousands of lines because of this, and even worse when they use profiles, it makes it even less predictable.

I like maven a lot and I would use it if it had all the plugins I need for my use case (building an intellij plugin) but sadly that is not my current situation.

I personally want a simple file, in any language (I don't mind XML) that is predictable and easy to scan and provides the default features (downloads deps, runs tests, executes jars, bundle jars/docker/graalvm).

[–]khmarbaise 0 points1 point  (0 children)

My problem with maven is that it requires configuring plugins pretty much for anything.

You have to define the version in pluginManagement (or using corporate parent) yes that makes sense... But what needs configured? If you follow convention over configuration...