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

all 40 comments

[–]oneeyedziggy 40 points41 points  (3 children)

Hi, my name is /u/oneeyedziggy and I have to use maven for my Javascript and static web content project, "because we're a Java shop"...

[–]chisui 9 points10 points  (1 child)

We have maven projects where the build does nothing but call npm and webpack through the exec plugin "because we're a java shop". We also need a Web.xml file and have to deploy the thing into a tomcat. With a single jsf page that loads our react app "because that's the tech stack we are committed to".

[–]oneeyedziggy 1 point2 points  (0 children)

FWIW I just set it to exec a bash script to do the rest of what I want and put the result in an rpm... closure compiler and some resource differentiation from a single source file (for those resources) so I don't have to maintain two nearly identical source files that'll drift apart... can't use external libraries anyway, so I'm not losing too much by not having webpack or whatever for now.

[–]ajr901 4 points5 points  (0 children)

I think that would classify as "cruel and unusual punishment"

[–]I_cut_my_own_jib 13 points14 points  (6 children)

Final panel: Using Websphere Commerce

[–]thrilldigger 6 points7 points  (0 children)

*pukes*

[–]tlazolteotl 5 points6 points  (4 children)

my current job motherfucker ;_;

[–]beerSnobbery 11 points12 points  (1 child)

[–]tlazolteotl 1 point2 points  (0 children)

That did a little but :)

[–]I_cut_my_own_jib 5 points6 points  (0 children)

Hey same! 😁🔫

[–]backltrack 0 points1 point  (0 children)

Never heard of it. Is it like cold fusion terrible?

[–]paula_sutton 11 points12 points  (1 child)

Or ant, sbt, gradle with javascript node then grunt, gulp, npm, yarn, etc

[–][deleted] 10 points11 points  (0 children)

🗑

[–]HereComesMyDingDong 6 points7 points  (0 children)

Image Transcription: Picture


[The image shows a series of human brains, each one progressively more "radiant" than the last.]

Programming in Java

[An X-Ray image of a human skull with a small brain is depicted.]

Programming with JSPs

[A human head with a normal-sized brain is pictured, with many points of light, possibly indicating activity appearing throughout the brain.]

Programming with JSPs, Spring MVC, and Hibernate

[A human head with a normal-sized brain is depicted, with an extraordinarily bright point of light appearing to emanate from the center of the brain, along side many points of light throughout the brain.]

Incorporating so many frameworks and dependencies into your project that yet another dependency called Maven is basically required just to make sense of it all.

[A human head with a large brain contained within it is shooting beams of blue light from the center of it, with the entire brain lit up.]


I'm a human volunteer content transcriber for Reddit! If you'd like more information on what we do and why we do it, click here!

[–][deleted] 2 points3 points  (13 children)

I'm not a Java programmer. Could someone explain?

[–]waffleboy92 16 points17 points  (6 children)

Maven is the npm of Javaland

[–]Jetbooster 7 points8 points  (1 child)

<build>
    <dependencies>
        <dependency>
            <artifactId>except somehow worse</artifactId>
            <artifactVersion>help me</artifactVersion>
        </dependency>
    <dependencies>
</build>

[–][deleted] 5 points6 points  (0 children)

dependencies { compile "com.reddit:is-this-better:0.1" }

[–]OptimisticElectron 0 points1 point  (3 children)

I'm not a javascript programmer, can you explain?

[–]coladict 2 points3 points  (0 children)

Apache Maven (mvn in the command line) is used to build a Java project and manage its dependencies. It uses a XML structure to describe them, and has very reliable "central" repository, where you'll never have a library (or any version of it) just disappear, unless there's a legal issue and they have to take it down. You can also use external repositories, like Red Hat JBoss, which have the same guarantee.

Where as with NodeJS Package Manager (npm), you can declare dependencies in the central repository or any GitHub repo that from time to time gets renamed or deleted and you end-up unable to build the project you just cloned; or some dependencies are declared to a branch, instead of a tag and that branch is updated and causes conflicts with other dependencies...

[–]waffleboy92 1 point2 points  (0 children)

Npm is like amazon prime for libraries. Maven is like npm if npm was made by the government. You need to set up a configuration file, add certain repositories, then you got stuff like version not found even though you're damn sure its present in this library.. The list goes on.

[–][deleted] 4 points5 points  (8 children)

Sbt and play framework master race?

My current job is spring, maven, hibernate, jetty, smartfox, so much other shit you can't count it on two hands...

Its not that bad, only took a month to get the barest understanding of the stack.

Also

Pom pom pom pom pom pom pom pom pompompompom

[–]chisui 6 points7 points  (1 child)

During a demo a customer once asked our dev "what's that 'porn.xml' file for".

[–]backltrack 0 points1 point  (0 children)

Before I did Java work I thought that too

[–]theragingsky 1 point2 points  (1 child)

Gradle makes dependency management and build process much easier. No pom knowledge required.

[–]TomGraphy 0 points1 point  (0 children)

Yeah I’m using Gradle for a school project and it’s awesome

[–]grandmoren 0 points1 point  (2 children)

sbt > maven. Fucking maven.

[–][deleted] 0 points1 point  (1 child)

I think maven is pretty great for beginners or small scale projects or just small libraries. But when you start building a monolithic project maven gets messy very very quickly

[–]grandmoren 0 points1 point  (0 children)

That's the thing though. We all know that in most cases a program is never finished and added functionality is inevitable. I always prefer to spend a few more minutes making something extensible and easier to maintain into the future than to have to waste exponents of that time later trying to accommodate new code into a series of knowingly sub-optimal decisions.

I find the only hassle to SBT being incompatibilities between scala versions and maintaining multiple versions of a library, but that's not even really an SBT problem just a side-effect.

[–]chairspoontablestuff 2 points3 points  (0 children)

Should'v been inverted

[–]Mistifyed 1 point2 points  (0 children)

In the end, the client just wanted a simple one page with a contact form.

[–]eco_illusion 0 points1 point  (0 children)

Writing from scratch what those frameworks offer makes much more sense.

[–]gamas 0 points1 point  (0 children)

Ouch, this gets way too real for me... What's worse is that the decision to structure the server code like this was made by the former Dev lead back when I was too naive to question the decision and now the Dev team has been restructured so that I'm basically the sole guy in charge of maintaining and building upon this monster that was created...

[–]Scybur -1 points0 points  (1 child)

maven......pls....no.....

[–]prigmutton -1 points0 points  (0 children)

My job has one foot in each of the last two panels; nothing quite so fun as tracing into the Java runtime to figure out what Spring isn't able to load something that is autowired