tag:blogger.com,1999:blog-8068072736664339605.post2550726713729665789..comments2022-04-02T21:18:46.015-05:00Comments on Software Maven: Top 10 reasons why Maven sucks...not!Anonymoushttp://www.blogger.com/profile/04826831792509834425noreply@blogger.comBlogger66125tag:blogger.com,1999:blog-8068072736664339605.post-28843225776308591722012-02-26T23:22:38.985-06:002012-02-26T23:22:38.985-06:00Maven is not transparent, their error message most...Maven is not transparent, their error message most of the time is not accurate, many developers do overly unnecessary complex things to it. Its almost impossible to explain to managers who and what causes errors in Maven.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-37975864355146345322012-02-15T18:29:02.275-06:002012-02-15T18:29:02.275-06:00Yep yep. And all you wanted was to delete the buil...Yep yep. And all you wanted was to delete the build dir. Principle of least astonishment goes straight out the window with maven. <br /><br />Also there should be a competition of "How big is your .m2" directory?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-11049683825228932892012-02-15T18:00:48.528-06:002012-02-15T18:00:48.528-06:00Hello all,
I have been working as a developer for...Hello all,<br /><br />I have been working as a developer for quite some time now so I have used ant and maven.<br /><br />I dismissed maven when I typed 'mvn clean' and it connected to the network to download some dependencies.<br /><br />I fixed this by typing:<br /><br />cd /opt<br />rm -rf mavenAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-87204585089186396952011-12-15T06:30:46.434-06:002011-12-15T06:30:46.434-06:00excellent example of how maven simplifies your lif...excellent example of how maven simplifies your life :<br /><br />http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin/6475103#6475103Anonymoushttps://www.blogger.com/profile/03415951354753811507noreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-52092351212384510592011-12-08T07:09:51.316-06:002011-12-08T07:09:51.316-06:00Another thing. In year 2011, Maven doesn't sup...Another thing. In year 2011, Maven doesn't support concurrent instances on single machine. So you could end up with race condition when downloading & using artifact at the same time. It may not be problem for you sitting at your desktop, but for continuous integration it's a big problem. Yeah I could set up local repository for each instance. But why? <br /><br />Maven sucks hard! Maven designs is poor.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-33756869640938325642011-12-06T13:35:17.754-06:002011-12-06T13:35:17.754-06:00My impression of Maven is that it was designed wit...My impression of Maven is that it was designed with a ton of defaults to hopefully not require a lot of configuration to get a build working.<br /><br />Which seems to work for smaller projects, but then again, maven is overkill for a smaller project, which can get a basic ant build up faster than learning "The Maven Way" and writing out the dependencies.<br /><br />The operative problem with maven is that it doesn't seem fundamentally designed and defaulted to a host of large-scale project problems, and the resulting configuration to make maven do what you want it to do then makes it seem like you might as well do an ant build anyway, since the configuration is equivalent in xml size, is more explicit, and you're not constantly wrestling the unknown defaults.<br /><br />The only real good I see out of maven is encouraging all the projects to standardize jar naming conventions, and get them in a central repositories. A lot of that infrastructure is nice.<br /><br />But maven the actual tool is not a good tool. Even if you fix it, you are suffering the problems of multiple conflicting documentation versions on google for someone looking for how to do something.<br /><br />Hopefully a new project comes along that will do this better.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-23493614299819195702011-11-26T23:19:54.062-06:002011-11-26T23:19:54.062-06:00Maven is is horrible and freaking irritating as he...Maven is is horrible and freaking irritating as hell. What a waste of time, just use Ant.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-76251445877390713342011-11-24T06:06:46.681-06:002011-11-24T06:06:46.681-06:00Edit to my previous post: Here is the draft: http:...Edit to my previous post: Here is the draft: http://docs.codehaus.org/display/MAVEN/Repository+Security<br /><br />Maven as a package manager piece of crap.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-43401222431594665002011-11-24T05:53:46.877-06:002011-11-24T05:53:46.877-06:00Another thing is that Maven (2, 3) is great securi...Another thing is that Maven (2, 3) is great security hole. Now I'm not trying to sound like security guru. But it really doesn't matter how much effort you put into securing your system (anti-virus? useless). Man in the middle attack on LAN is trivial. Since Maven downloads half of universe in every run it's very attractive for doing whatever a bad guy on LAN want on your computer. And all that's left is to run your unit test for example. I don't care how you install software but re-inventing wheel (package manager) with no security at all is clueless. There is a draft but it seems it'll take another 10 years to implement it...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-26529901172780638162011-11-24T04:47:56.391-06:002011-11-24T04:47:56.391-06:00Regarding "XML sucks" argument I must sa...Regarding "XML sucks" argument I must say that XML really sucks for build tool. For example once I wanted property with random suffix. You can't do that in Maven (2). Hell you can't even include properties file. I'd rather see it as DSL (Groovy, Scala, Perl, ...). They exists, I know.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-31533775725051051472011-10-07T16:47:41.165-05:002011-10-07T16:47:41.165-05:00I don't want my developer's using maven. I...I don't want my developer's using maven. It introduces dependencies in code. It brings in code with licenses which are unknown. <br /><br />In short, it looks like a tool made for the Java community, by the Java community, for people who love lots of Java frameworks. <br /><br />Frameworks = bloat. Just like "process" in a company, "frameworks" should be limited to the absolute minimal amount to get the job done. Not frameworking for frameworking sake. Frankly, after years of programming with everything from C++, to embedded systems, to big Java backends, I believe tools like maven are solving problems which simply shouldn't exist. <br /><br />If you don't know EXACTLY what libraries you need - you shouldn't be using them. At least don't come to my shop with them.<br /><br />Bring a JAR, tell me the exact version number, and move on.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-36230273294924828392011-07-13T09:34:03.479-05:002011-07-13T09:34:03.479-05:00Hater's gonna hate!
Your fanboy should have t...Hater's gonna hate!<br /><br />Your fanboy should have told you to use dependency:tree. Then you'd know what you are using and from whence it came. <br /><br />Silly Ant user. Your build is so special isn't it?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-80509610914887610002011-07-13T03:30:04.283-05:002011-07-13T03:30:04.283-05:00Maven (with transitive dependencies) hides direct ...Maven (with transitive dependencies) hides direct dependencies (a so called "feature" of Maven).<br /><br />With transitive dependencies it is no longer possible to look at a module (or dependency if you prefer) and determine its direct dependencies.<br /><br />This actually has the effect of decreasing modularity, as the precise dependencies are no longer specified (just tossed into the transitive Directed Acyclic Graph).<br /><br />This is why a (really bad) plugin is necessary that breaks Eclipse's default build.<br /><br />Example:<br /><br />Without transient dependencies:<br />Let "A->B" indicate "A depends on B".<br />Suppose<br />A->B<br />B->C<br />C->D<br /><br />Suppose also that A->D.<br /><br />In maven, using Transitive dependencies:<br /><br />In A's pom:<br />A->B<br /><br />In B's pom:<br />B->C<br /><br />In C's pom:<br />C->D.<br /><br />By only looking at the poms, it is not clear whether:<br /><br />A->C?<br />A->D?<br /><br />Now, why would you throw away this information? How on earth could it be an advantage to no longer be able to determine the required dependencies? I posed this question to the Maven fanboy we had at work, and he continued to insist that the (well nigh useless) graphical tool was in fact showing me the dependencies. You see, he really loved the Emperor, and marveled at his new clothes....Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-30528719058359142752011-07-13T02:01:19.501-05:002011-07-13T02:01:19.501-05:00Actually, it occurred to me that the poster of &qu...Actually, it occurred to me that the poster of "Now please tell me how you manage a complex dependency tree of versioned jar files using Ant" actually thinks this is somehow necessary.<br /><br />Nope. Not necessary.<br /><br />Maven is a broken solution to an invented problem.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-90068625922101538812011-07-13T01:56:25.549-05:002011-07-13T01:56:25.549-05:00I have to comment re: "Now please tell me how...I have to comment re: "Now please tell me how you manage a complex dependency tree of versioned jar files using Ant."<br /><br />is there a problem with just putting the jar files in a directory (to "manage" them)?<br />And then the version is in the name.<br /><br />So, finished, right?<br /><br />Why would I create a jar repository (introducing the possibility of very tricky bugs (yes it has happened on a large project at a company where I worked)) when I can just put them in a directory?<br /><br />The entire Maven philosophy is junk. I could go on and on. Maven is destroying modern Java software development. As far as that goes, Spring is also a dopey and bloated piece of shit. Hibernate/JPA is junk (I used to think otherwise, but bitter experience has taught me better).Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-15442340771648188332011-07-11T18:36:10.080-05:002011-07-11T18:36:10.080-05:00I'm pretty knowledgeable with ANT and I just c...I'm pretty knowledgeable with ANT and I just can't get through with using Maven. I'm a professional services team member and occasionally I need to build an add-on component for our platform. trying to do that in maven requires a lot of changes since I'm not interested in building all the dependencies, I have their jar files locally and I'm just trying to build the add-on. so I need to go an change my deps to scope system add the full path and even then it refuses to build due to artifactItem is not picking up my system scope deps and cannot copy them. That was just one hurdle I faced with Maven that would have been a no brainer to fix with ANT. not to mention all the download I had to wait for on the initial run, and some more artifactItem references that could not be resolved. This is my second or third time trying to get Maven working without success, giving up forever.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-38829501606468921352011-04-28T08:49:29.404-05:002011-04-28T08:49:29.404-05:00Maven's problem is that Maven was originally c...Maven's problem is that Maven was originally created for people who apparently couldn't handle ant. Ant, when using a base master build file with macros, becomes a very easy system to use with individual build files being no more than a classpath statement per project, and maybe an override task for a specific step. For a 40+ component project with hierarchal dependencies, my individual ant build files averaged about 6 lines each. <br /><br />You can't touch that efficiency in Maven. <br /><br />Another problem I have with Maven is dependency mapping. As noted above, it becomes a nightmare when you have hierarchal builds with incremental versions. With Ant, that's not a problem, as this is one of its core competencies. <br /><br />I also don't like that Maven pulls from a repository that is outside my source control system. It's yet another thing to maintain and manage. I personally prefer to have known and controlled third party artifacts in my build, and I don't buy the "I am unsure what I have when I go to a colleague's machine". If you are unsure, you don't have good SCM in place. My projects generally require pulling 2-4 repos from SCM, and then running a single build script. 1 of those repos is the Ant master build project, which is shared across all projects, and can even include ant itself if you like, solving the problem of "which ant version are you running and with which plugins". <br /><br />Additionally, the last 6 major projects I worked on were all entire system builds - many components comprising a system built as a single version and created as an installable/deployable unit. I don't mean a WAR file either, but the entire application server, as it was modified as well in 2 projects. Doing this in Maven is like removing impacted molars by yourself.<br /><br />While you don't understand the Maven bashing, I don't understand the need for Maven at all. As you state, I'm not in the business of fixing what's not broke. Ant is not broken. Maven is.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-27999391420767810542011-03-29T15:43:15.541-05:002011-03-29T15:43:15.541-05:00For me,
the issue with maven is that it's har...For me,<br /><br />the issue with maven is that it's hard to understand what's going on under the hood. I have worked with some maven archetypes from some remote repository and build times for a simple hello world app (one JSP file, no java) takes + 30 seconds. That should have been done in 100ms. Specialyl when you use such a remote repro, and do a hello worl and you need to download 30 minutes of 'stuff' (I am at 512Kbit) then you wonder why it's all needed.<br /><br />so in general, to much to read and understand, and 'maven for dummies' frontend to configure some of the needed items to speed up compilation. Maven assumes you will read a maven book and learn it like the holy bible.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-41926886569645394572011-03-21T18:16:03.058-05:002011-03-21T18:16:03.058-05:00Why Hibernate moves away from Maven ! Now tell me ...Why Hibernate moves away from Maven ! Now tell me the Jboss/Hibernate guys are only doing toy projects : http://community.jboss.org/wiki/Gradlewhy<br /><br />Quote : "The release plugin is completely worthless." ... "But there is a problem with making GoodGuidelines into AboluteTruths... they seldom are." ... " "inherited pom data" and "module aggregation" into a single file. I think it is an awful idea"<br />and so on and so on...<br /><br />have fun on the "serious" projects, guys!Anonymoushttps://www.blogger.com/profile/03415951354753811507noreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-78789973859682368622011-03-07T20:23:17.639-06:002011-03-07T20:23:17.639-06:00Maven is fully moist.Maven is fully moist.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-58168154185928577432011-03-03T17:49:53.857-06:002011-03-03T17:49:53.857-06:00LOL@ "when Maven isn't making something e...LOL@ "when Maven isn't making something easy, it's because it probably shouldn't be done in the first place"<br /><br />How convenient, so Maven is the "definition of perfection"? Can I play this game too? "I personally believe that if Ant doesn't make something easy, it shouldn't be done at all!"<br /><br />By the way, you don't give a RATS *** if Maven can be configured "not to connect to the Internet", or even if it "only connects once" when you're working in a SECURE environment specifically designed not to allow Internet access. Just another stupid assumption made by fools with the arrogance to assume they understand the needs of every development environment on the planet. And no, I'm not wasting my time setting up an "offline" site for the Maven rubbish. I have real work to do!Maven Sucksnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-86226800182344198672011-01-26T03:51:02.312-06:002011-01-26T03:51:02.312-06:00A generic wiki link does not make a convincing arg...A generic wiki link does not make a convincing argument, sir. If anything, it supports what I'm arguing.<br /><br />Maven tries to solve "dependency hell" for Java projects in a structured fashion, like a Linux package manager, and it largely succeeds. Other things in Maven sometimes annoy me, but the dependency management is usually not one of them. It has some quirks, but by no means is it a fundamentally flawed way of dealing with the dependency issue. <br /><br />Java projects MUST depend on specific versions of their dependencies, because there is no preprocessor to deal with the possibility of different versions, unlike in C/C++.<br /><br />I don't understand what you think the alternative should be...everyone writes their own custom Ant scripts to do what Maven does?<br /><br />Each project stores every last one of its dependencies in its source repository?<br /><br />I thought we went through that already and determined that this sucks even more than you think Maven does.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-11657852074688418922011-01-26T03:39:21.209-06:002011-01-26T03:39:21.209-06:00@KOMA
Okay, you've made up your mind. I'...@KOMA<br /><br />Okay, you've made up your mind. I'm fine with it. It is just an internet argument, after all. But you haven't exactly made too many convincing points here. I'm not even convinced that you've ever used Maven for any significant length of time, which kind of makes your arguments a bit specious.<br /><br />Ant and Maven are both good tools. They're just different. I'm not even trying to say that Maven is "better" than Ant in all cases. It just has a much different...er...task. Maven is like a build tool plus a package manager (among other things).<br /><br />And I was actually curious how you manage all your deps with Ant. The scripts I have seen for doing this are...interesting and involve a lot of properties files (ugh). What's the best way? How do you do it quicker/faster than Maven? Please enlighten me if you're such an Ant guru.<br /><br />I know I won't convince you of the superiority of Maven for project management over Ant, but can we both at least agree that CMake royally sucks?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-73925837107674901292011-01-26T03:30:39.320-06:002011-01-26T03:30:39.320-06:00Maybe you're too young to remember what the fi...Maybe you're too young to remember what the first solutions in the field looked like : http://en.wikipedia.org/wiki/Dependency_hellAnonymoushttps://www.blogger.com/profile/03415951354753811507noreply@blogger.comtag:blogger.com,1999:blog-8068072736664339605.post-68901160774628851902011-01-26T03:27:52.669-06:002011-01-26T03:27:52.669-06:00RE: Broken by Design
This guy is complaining that...RE: Broken by Design<br /><br />This guy is complaining that a software tool depends on the internet, which is quite dated.<br /><br />apt-get anyone? <br /><br />Many utilities depend on an internet connection and on certain repositories of data, etc. being present with a certain directory structure. This is not a new concept, nor is it a flawed one.<br /><br />I even have an autoconf/make based project that uses wget and cvs to get sources off the internet for various project dependencies. What is the big deal? If the URL of these sources changes or cvs gets switched to svn, I change my scripts. And if the equivalent happens in Maven, you can probably fix it by changing one or two lines in a POM file. If a whole repository goes down for good, then you switch to another repository.<br /><br />I kind of look at Maven as having some similarity to a package manager for Java, like CPAN for Perl. It isn't just a simple build tool like Ant for executing local builds without an internet connection. If that's what you want, then Maven ain't it.Anonymousnoreply@blogger.com