Many people say that Maven is more difficult to use than Ant, I just don’t agree.
I don’t agree that Maven learning curve is steeper than Ant, the fact is that many people already know Ant, but for newbies Maven hides all the low level stuff and can focus in what they want to do instead of how to do it. It’s a kind of declarative (maven) vs procedural (ant) point of view. You only need to create scripts if you want to customize your building, and you can use ant for that.
And remember! Maven is not only about automatic dependency downloading and a beautiful autogenerated site, but also project build standarization (standards are good, aren’t they?)
Maven does tend to get beat up far too often. The thing you have to remember is that Maven is not for every team and every project. But for those teams/projects that it fits it is hard to beat. In our group build standardization is important and most of our projects are fairly simple web applications. For us Maven would be hard to replace.
What a bizarre ad! I don’t want to be rude on other people’s blogs, but really:
– Must you hyperlink every mention of maven?
– It’s aren’t they, not them in your last sentence
– to call maven’s autogenerated site ‘beautiful’ you must have some very, very strange concepts of what constitutes beauty
– Many people don’t work on cookie cutter projects, which is why maven’s approach is doomed. Anything that tries to pull a fast one on the user and make them think that ‘magic’ is happening behind the scenes is not going to work if your target audience is developers. ant makes it clear what happens, maven does not (at least, based on many people’s perceptions, of course, many others think the opposite, to be fair).
– ant 1.6’s build standardisation features are much simpler and easier to understand and use than maven’s. Maven is also not a ‘standard’ in any traditional sense of the word either, so your last assertion is just…wrong.
> – Must you hyperlink every mention of maven?
Yes, sure! and Spring, Acegi, ONess,… (if they are mentioned) it’s an option called Bookmark Linker, under options.
> – It’s aren’t they, not them in your last sentence
Fixed. I’m just a spaniard.
> – to call maven’s autogenerated site ‘beautiful’ you must have some very, very strange concepts of what constitutes beauty
Yes I have. I’m not a web designer and find beutiful anything different from plain text 😉
> Anything that tries to pull a fast one on the user and make them think that ‘magic’ is happening behind the scenes is not going to work if your target audience is developers. ant makes it clear what happens, maven does not (at least, based on many people’s perceptions, of course, many others think the opposite, to be fair).
I know that there’s some magic under Java to make it work in silicon chips, but I just don’t care. It’s other people’s work.
> – ant 1.6’s build standardisation features are much simpler and easier to understand and use than maven’s. Maven is also not a ‘standard’ in any traditional sense of the word either, so your last assertion is just…wrong.
I think ant was the standard building tool for java developers, and I don’t think maven is standard (yet). What I mean is that maven encourages and facilitates the standarization of project building.
There are no documentation.
The error messages are terrible.
Contrary to what maven developers claims, most questions go answered on the mailing list.
Maven is still amazingly buggy.
Maven developers don’t accept criticism.
Did i mention that the docs suck.
So, yes maven is difficult because not everyone has three days to figure out why a plugin is not working when it’s supposed to work and there are no error messages.
About a year ago, I tried to use maven to get a downloadable software project from somewhere working. I cannot remember the details, but I tried hard to get at least something doing the job as it should. I think I am not too stupid to make something work in general.
If I remember correctly, then the setting of the proxy was not what someone would call easy or intuitive. I am not a fan of command-line driven tools in a Windows environment. For that, *NIX should be better.
Just my opinion.
Klaus
Maven extends the basics of Ant. It provides a project model. If you have a hard time using Maven, there is a good chance that you have not read the Maven documentation. The cost of the advantages of Maven is a small learning curve.(This sentiment is not aimed at Hani per se. Hani seems to have used Maven and formed a different opinion.)
There are many Maven wikis around that explain how to use the different plugins, but….
That said: The documentation for some of the plugins are horrible. I’ve written my own plugins b/c of this that do the same thing as the plugins that already exist.
Maven has a task to generate an ant script. I use this task to negate the argument that Maven is too complicated. I generate the ant script, and then folks more familiar with ant and less inclined to learn something new (stress, time pressure, closed-minded, prefer ant 1.6 build extensibility, whatever) can use ant.
I prefer to use Maven. I don’t have to reinvent the wheel on each project. It makes ant extensible. It provides an artifact repository. It helps mitigate Jarmaggedon!
Regarding Hani’s comments.
Hani wrote:
“- Many people don’t work on cookie cutter projects, which is why maven’s approach is doomed.”
I’ve used Maven on a very diverse set of projects, and find it no more limiting than Ant.
Hani writes:
“Anything that tries to pull a fast one on the user and make them think that ‘magic’ is happening behind the scenes is not going to work if your target audience is developers. ”
First, I believe this concept is called abstraction. Second, the plugins are mostly just xml files that look a lot like Ant build.xml files. I can read them just fine.
Hani writes:
“ant makes it clear what happens, maven does not (at least, based on many people’s perceptions, of course, many others think the opposite, to be fair).”
I find this line of logic to be a flawed. How does Ant make it more clear? The plugins are usually just xml files. You can open them up and read them just like you can an ant build.xml file. Well documented plugins are easier to use than ant. Is there such a thing as a well documented ant script? Usually, I can figure out a non-documented plugin by looking at its xml file. If I cannont figure it out, I can do anything in Maven that I can do in Ant. I can write my own plugin or write a goal. I can use Ant tasks as needed.
Hani wrote:
“- ant 1.6’s build standardisation features are much simpler and easier to understand and use than maven’s.”
Perhaps they are. Maven’s plugins existed first. I will look into ant’s equiv. For now, I will use Maven. I’d love to see a comparison of the two. Send a link if you got it.
I find Hani logic to be somewhat flawed. “You should not use Maven b/c the sites look bad.” First, You don’t have to use the generated sites at all to use Maven. Second, It is easy to change the way the generated sites look.
Hani also constantly resorts to “Ad hominem” which is a classical logic flaw. He attacks the person instead of the arguments.
He also uses “Ad ignorantium”, which is to appeal to a burden of proof logic fallacy.
Try Maven, you can learn it in 15 minutes and it can save you a lot of time.
I’ve responded to past Maven critics here:
http://jroller.com/page/RickHigh/home?catname=%2FMaven
I don’t spend as much time with Maven as Carlos. He has some really interesting posts about Maven.
Don’t get me wrong, I don’t dislike Hani. He is a very funny guy. He is also very creative. What I dislike, is the 1,000,000 Hani copies. Hani is an original. Copies never come out as well as originals.
The trend with many bloggers seems to be: You disagree with me therefore you are stupid (which is not a convincing argument).
Or, I don’t understand it so it must be a dumb idea is equally unconvincing.
Hani, at least, can say the above in an entertaining manner.
I’ve written a quick Get Started With Maven here:
http://jroller.com/page/sushmu/?anchor=maven_for_dummies_build_your
PS: Its a barebone overly simplistic tutorial 🙂
I was a happy ant user with TDK, but since TDK has been deprecated and is no longer supported, i had to switch to maven.
So far, i don’t see anything argument for the switch.
Maven is part of those tools that are “gout du jour”. Documentation is poor and confusing, i spent a week to be able to generate the template application with genapp plugin.
Another thing is that unless your machine is always on the net, there is no way you can get things done quickely, there are always some weird pars, libs,plugins that are required.
Error messages are just horrible, and getting maven to do something is more a long and painful hack more than anything “standard”…
The phrase “Don’t believe the hype has never been so true”.
What have we done to disserve this??
we just started off using maven in our company for the new project.Had to spend some time with dependency management and artifact downloading because my company has proxy and that stops downloading ,i resolved it and so far so good .Had yet to see how it goes off in the future