I have been reading up on Maven2 for a project at work. It pretty much handles everything about a project (managing dependecies, documentation, tests etc.).
I wonder if something similar would benefit the Perl community or is there something out there that I don't know about or even "it is a bad idea".
Re:Maven == CPAN?
sigzero on 2008-01-14T01:55:24
No, they are not even close to being the same but I can understand why you would say that given my description and not knowing maven. Maven in 3 non-descript words would be a "project management framework". Granted I don't know everything about CPAN either. : )Re:Maven == CPAN?
btilly on 2008-01-15T04:50:25
I understand the comment. You said that Maven does managing dependencies, documentation, tests etc. CPAN has a built-in system to manage dependencies and figure out when one thing needs another. CPAN has a built-in standard for how to document things, and that documentation winds up on a standard website. CPAN has built-in mechanisms for testing, and people have built frameworks around CPAN to test what works on what platforms. And CPAN does more.
In the case of CPAN it does these things in very, very different ways than Maven does. But the actual functionality that you said Maven has, CPAN has as well.
(And from reading other responses in this thread, it sounds to me like CPAN does a better job of it without making it obvious that it is even trying to do so.)
Re:Beware
sigzero on 2008-01-14T01:51:46
Yup, read that. However, there are a whole lot of people that like it as well.Re:Beware
lachoy on 2008-01-14T04:00:17
+10; Maven suffers from the fate of other ambitious development tools:
1) It imposes its own worldview on How Things Should Work (e.g., only one source tree per 'module') that require you to develop, package or deploy differently.
2) Hand in hand with that, it's a "drink the kool-aid" project -- you need to know how things work to figure out how they should work. For instance, Ant has a simple way to ask "What targets can I run with this buildfile?" Maven has no useful implementation of such a thing (the list of 'goals' is so long it's useless), so if you're encountering it for the first time you need to take on faith that the default will do something useful, or that the project that's using Maven has documented what you should do. But even then you're being led to actions rather than discovering them.
3) Documentation blows, so when something doesn't work like you'd expect (which, if you haven't drunk the kool-aid, is fairly frequent when you start) it takes far longer than it should to figure out why.
Plus, one of its most-touted features (dependency management for libraries) has never seemed very useful to me.
ChrisRe:Beware
sigzero on 2008-01-14T12:31:00
They make no bones about 1 and 2. That is even in the book I am reading on it. So what? Everything imposes its own world view at some level. The book is good which is what got me wondering.Re:Beware
lachoy on 2008-01-14T13:00:30
The "so what" happens when you want to something outside their proscribed worldview. I don't think tools should impose constraints like that, but YMMV.
And, of course, all this just applies to the one implementation; there's nothing that says a copy needs to copy all the warts:-) Re:Beware
sigzero on 2008-01-16T21:48:31
And, of course, all this just applies to the one implementation; there's nothing that says a copy needs to copy all the warts:-) That is what I was thinking as well.
Re:Beware
Dom2 on 2008-01-15T00:22:17
Plus, the UI blows badly as I discovered.I've just witnessed several experienced developers at work have their projects delayed by weeks, as they are converting to Maven. Not in one big go. Just the continual rounds of “why is the build broken now?” adding up. To me, the benefits don't seem to outweigh the flaws.
Re:Beware
sigzero on 2008-01-16T21:46:36
I think converting would be difficult. I am starting from scratch though so I don't anticipate those bumps.Re:Beware
Dom2 on 2008-01-17T12:30:25
Oh, these were from-scratch projects too. That's what surprised me. It seems like Maven makes easy stuff hard, and hard stuff downright impossible.