Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
what build system
intern manually running tasks by hand
some gigantic proprietary system that only runs on windows
random link to github project with no commit in 3 years
goku
View Results
 
  • Post
  • Reply
Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
Maven status: still bad

Adbot
ADBOT LOVES YOU

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
Also rip if your company uses bamboo, it’s not bad apart from maven but the world will punish you forever for using it and not Jenkins

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Share Bear posted:

a lot of shims that force stuff not in java to build
Sums up the build situation at my lastco pretty well

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Shaggar posted:

maven rules and is the only good build system.
Maven is the clearcase of build systems

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

CRIP EATIN BREAD posted:

i had to write a bamboo plugin that let me define a static file to drop into the build directory of a project right before it builds. for whatever reason the suggested mechanism in bamboo is to write a bash script that generates the file.
Alternately use bamboo to send a signal to the build command (via env var, command line) telling it to drop the file. (This assumes a build tool that can readily be instructed to do particular use-case specific tasks at specific times)

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

dads friend steve posted:

alright so if not maven what am I supposed to use to build my trash java apps?
gradle, which can be a DSL when you need a DSL but also allows you to say "now do this" because the apache foundation actually hasn't thought of everything that a build system might ever need to do

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
go on

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
gradle provides modules that can be configured similar to maven using far more efficient and readable syntax (lol @ hand-edited xml)

however it is magical thinking to suppose that these pre-existing modules will always cover the emergent needs of any organization and for those cases gradle lets you go procedural as needed, reusing parts of those modules at the level where they are indeed reusable

maven's architecture is that any emergent need has to be captured immediately as a plugin, before you can proceed at all. you don't get to express it procedurally at first so that you can feel out the requirements and what the configuration points are. this pushes you to create "reusable" plugins that are not in fact reusable and should be done over, but we know that necessary do-overs have a way of not ever happening

(though in observed practice people will just hack in an antrun goal rather than create a plugin, while crossing their fingers that it doesn't conflict with maven's "opinions" about goal sequencing, because bro there's a friggin deadline)

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
I know that pain

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
More like circumvention over configuration

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
If there are never emergent needs then why does Maven even provide a plugin api and why have plugins been created for it, huh genius

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
i have never seen any other build tool that demanded more developer attention and babysitting than maven. even the build system developed for windows NT (a boatload of cmd scripts driven by nmake) managed to be more intuitive

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
even if i had it it wouldn't be mine to post, and anyway we both know that your response would be "why are you doing the dumb things" while ignoring the answer I have always given, that the management mandated the use of maven while also imposing requirements (esp. variant builds) that conflict with maven's "opinions"

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
it is though, because the purpose of a build system is to do what it's told and maven can't be told what to do

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
one particluar requirment for variant builds, was that entry points to an artifact had to be renamed on a per-customer basis as an additional obscurity measure on top of the underlying security solution. the customers wanted it, so they got it! the way this worked — put in place before I arrived, I think by our very "innovative" co-founder — was

- each customer's renaming config was recorded in an XML file
- the build server ran maven package to build the code from source (no tests, customers don't pay for tests you dummy)
- at the end of that stage, maven executed antrun to call out to an external build.xml
- the build.xml read in the renaming config and used xmltask to generate a custom target for the renaming and then executed it. then it zipped the artifacts into a distribution
- next the build server ran maven again with um, the install goal? the package goal again with a different profile? i don't remember
- that goal, whatever it was, executed a gmaven task, which is maven executing a groovy script
- the groovy script did some other last-minute stuff that i don't remember but ant wasn't able to do, then it repeatedly ran maven deploy commands to push specific artifacts to the repository with different types and classifiers

this was not the only variant-build requirement but it probably is the most entertaining story and the general theme of the whole process is having to graft things that are programmable onto maven because directly programming maven according to your business requirements is like pulling teeth

e: oh i forgot to mention, at one point I added another big step and another subordinate tool to this process, while leaving all the others in place because deadlines, then fortunately i was able to beg my lead for a week to dive in and remove the xmltask stage

Gazpacho fucked around with this message at 22:00 on Jan 11, 2020

Adbot
ADBOT LOVES YOU

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
what maven does well: pulling libraries, fixing the top-level directory layout and especially a single top-level build output directory. this last one is such a small thing but it makes builds immensely more repeatable and despite this people at PrevCo would still fight against it

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply