Slashdot Mirror


Apache Maven 1.0 Released

darthcamaro writes "internetnews.com is running a story on the release of Apache Maven 1.0 this week. Maven is a very robust project-management and project comprehension tool that is unparalleled in either open source or proprietary software. 'Maven has a long history of pushing out beta after beta, so this is definitely an important release,' Jason Van Zyl, Maven architect release manager, told internetnews.com. 'For users it means that they will have something reliable now for their production builds.' From some of the comments that Van Zyl makes in the story though, it look like the upcoming 2.0 version will be the real killer app, though 1.0 is certainly nothing to sneeze at either..."

34 of 167 comments (clear)

  1. Link to project by Inominate · · Score: 5, Informative
    Why do stories like this so often leave out a link to the actual project?

    http://maven.apache.org/

    1. Re:Link to project by Anonymous Coward · · Score: 5, Informative

      It's not a project management tool.

      It's a Java programming project management tool.

      There is a huge difference between the two things.

    2. Re:Link to project by radish · · Score: 3, Informative

      Errr...it is it's own screenshot. Maven is used to build Maven, and the output is the site you see before you.

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    3. Re:Link to project by legenx · · Score: 5, Informative

      Maven is a command-line tool. The screenshots are not that impressive...:)

      If you know Ant (Java much improved version of make), Maven is like Ant on steroid. Maven handles intra/inter-project dependencies, project site documentation generation, unit testing, code coverage, packaging, deployment, and there's even a plugin to test whether your code conform to the coding standard.

      One of the major strength of Maven is that it manages the various jar (library) dependencies in a seemless way. Multiple subprojects do not need to duplicate the jars that they depend on. You can even throw multiple subprojects into a "reactor" and it'll build them in the correct order based on their dependency graph.

      It's sad that it's for Java only. I wish there's something like Maven for C/C++, or even C#, but so far I don't think I find anything yet.

  2. Incredibly useful build tool by d-rock · · Score: 5, Informative

    We have started using Maven for in-house development and it really simplifies things. Being able to declare dependencies on libraries, etc, and have Maven go and grab the correct versions during build is cool enough, but all of the reporting and site building tools are really incredible. The PHBs were very impressed with the code analysis reports that it generates, and the CVS annotation of code is very nice for our internal sites. It takes a little getting used to, but if you've used Ant, you're halfway there.

    Derek

    --
    Don't Panic...
    1. Re:Incredibly useful build tool by clamatius · · Score: 2, Informative

      I've been using Maven for the last week or so to see what it's like. You can think of it as Ant's big brother - you use it for automating build systems and all the stuff associated with that like javadoc, reporting, changelogs and so on.

      I have mixed opinions on Maven.

      On the good side, the console mode is useful. Maven is pretty slow to start up as it's written in Java and the JVM takes a while to get moving - console mode works round that. The site generation plugins are also pretty cool, as you pointed out.

      On the bad side, it uses Jelly for its scripting language. Jelly seems kind of evil and I'm guessing the Maven developers think the same since I don't think they're going to be using Jelly for Maven 2.0. The documentation on writing new plugins (half the point of Maven if you ask me) also leaves a lot to be desired. I found I had much better luck just un-jar-ing the plugins Maven was using and looking at those rather than trying to find something out from the Jelly or Maven documentation. It's also pretty much a Java tool - while in theory you can write plugins to deal with other languages, all the existing plugins are very Java-focused.

      So in summary, better than Ant? YMMV, depending on your needs.

    2. Re:Incredibly useful build tool by d-rock · · Score: 2, Informative

      My understanding is that it's built on top of/around Ant. One of the Maven tasks is to spit out an equivalent Ant build file for the project.

      Derek

      --
      Don't Panic...
    3. Re:Incredibly useful build tool by clamatius · · Score: 2, Informative

      Maven Subversion support (haven't tried it myself).

  3. Maven Bile by Anonymous Coward · · Score: 5, Informative

    The Bileblog has an alternative view on Maven.

    1. Re:Maven Bile by Anonymous Coward · · Score: 1, Informative

      Obviously, you haven't read the bile blog before. Hani's point is to spew pedantic humor about the "asshats" of the java community. If you're looking for a serious argument on the subject, see:

      http://jroller.com/page/tdak/20040715#maven_over vi ew

    2. Re:Maven Bile by Knight2K · · Score: 4, Informative
      I agree with some other posters here that the BileBlog posts on Maven don't really offer clear reasons why Maven is bad. If you read enough of his posts on Maven you can pull out some of his general issues:

      1. The auto-generated website has a lot of pointless information that most people don't care about.
      2. The language it's implemented in is crap.
      3. The project favors features over stability.
      4. Maven highly constrains project layouts
      5. New releases break stuff that worked in old releases


      For the record, I don't think the idea of Maven is bad. The sexiest feature in my mind is declaring library dependencies by name and version number and having Maven pull down the required library from a central repository. No more cryptically named jars checked into version control. Upgrading the library is as simple as changing the version number. Inter-project dependencies are simplified since Maven publishes build artifacts to the repository for you. Other projects can just treat your project like another library dependency. Think of it like APT for Java builds.

      I find myself writing the same constructs over and over in Ant. There really aren't that many ways of build a J2EE application. Maven takes care of a lot of the tedious details by letting you specify at a high-level what you want to build; it takes care of building classpaths and assembling pieces into an EAR file. You can just get on with the code.

      I also don't have a significant problem with some of the constraints Maven puts on projects. It's a pain when you have something specific in mind or are trying to retrofit a project, but it is kinda nice to be able to look at any Java project and instantly grasp where to find things. Enforcing a directory layout may constrain the developer but increases transparency. The GNU projects generally follow a standard project layout with Autoconf support. I personally would not want to give up ./configure;make;make install. Standardizing project layouts helps make ease of use like that possible. Whether Maven picked a good standard or not is another matter.

      Where I agree with Hani's blog is:
      1. The implementation language sucks. Using XML as the syntax of a scripting language has to be the worst idea ever. I had to go in and tweak a few Maven plugins when it was in beta and I still have nightmares.
      2. Compatibility was broken between releases. I know that for a while Maven was in beta, but the beta cycles were so long that people assumed it was 'good enough', like JDOM. At a few points, I thought the project was dead. So it was majorly irritating when simple things broke when upgrading releases. The BileBlogger rightfully points out that betas should be about stabilizing releases, not doing a lot of feature fiddling


      I've been thinking about bringing it in for an effort I am currently working on. A lot of its features would match my needs. The issues that Hani identified however, especially the implementation language, are holding me back.

      There is also the fact that Ant is very well known. Many people are capable of fixing issues with Ant scripts. Extending Ant for custom tasks is also fairly trivial. I wouldn't really want to write a Maven plugin. And debugging the damn thing is tough since most of the logic is hidden.
      --
      ======
      In X-Windows the client serves YOU!
  4. Re:Sheesh by rkuris · · Score: 2, Informative
    MS Project is NOT bug free; not even close. I would venture to guess that MS Project has more bugs than IE. It's non-intuitive also.

    I, for one, am glad to see this project get moving. I'd love to see open-source and closed source projects get real project managers using real project management software.

    Everyone will be more organized that way!

    --
    Get rid of everything Micro and Soft: Buy Viagra and/or Linux
  5. Not the only thing left out: it's for Java only by Anonymous Coward · · Score: 5, Informative

    Sadly, the headline also left out the rather key information that this tool is for Java projects only.

    I was quite looking forward to a revolutionary project management tool ... alas, this one is yet another myopic product of the "Java is the whole universe" generation.

    Java is great ... but there is a larger world out there you know.

  6. Java by yamla · · Score: 2, Informative

    This is only for Java projects, it seems.

    --

    Oceania has always been at war with Eastasia.
  7. Visualize them! by Mustang+Matt · · Score: 3, Informative

    I'm trying to get it to run on windows.

    I must not have the right "Java" as it is telling me it can't lib/tools.jar so I'm going to go grab the latest jdk and see what happens.

    For anyone getting the JAVA_HOME environment variable not set, a reminder is that you can set env. vars by right clicking on my computer and going to advanced and then there's an environment vars button.

    --
    The man who trades freedom for security does not deserve nor will he ever receive either. - Benjamin Franklin
    1. Re:Visualize them! by furball · · Score: 2, Informative

      There's a godawful lot of things you have to point the JDK to in order for it get everything it needs. I used to hack on a code metrics analysis tool. The build instruction for Windows was a complete mess.

      Mac OS X just did things right. It did it even better than Solaris.

      However, this being a development tool rightfully has some fairly high minimum knowledge requirements. If you're trying to get it to find lib/tools.jar by upgrading to the latest JDK, you're not in the intended audience for this sort of thing. I'm not being insulting. It's just that most people who work with Java knows what lib/tools.jar is and how to get it found.

    2. Re:Visualize them! by minniger · · Score: 2, Informative

      Also make sure your path is set correctly.

      Click on PATH and edit it so the JAVA_HOME is at the FRONT
      of the path as so:

      %JAVA_HOME%\bin;<... rest of path ...>

      and you have JAVA_HOME set as:

      JAVA_HOME=<path to jsdk or jre home>

      This will save you boatloads of problems.

      ------------

      It's a good thing Swing sucks and is too hard to use or else
      I wouldn't be able to do my dev on a mac and deploy my apps
      to windows. Silly me.

  8. Re:definition by poot_rootbeer · · Score: 5, Informative

    I still don't know what it is :(

    Imagine a superset of `ant build` that not only compiles your binaries, but also generates your documentation and install and test everything you need to run your application out-of-the-box in a single step.

  9. Plone-esque proportions by Pac · · Score: 1, Informative

    So I am not the only person who had bad experiences with Plone? Good to know it was not my own dumbness alone that led me to the conclusion Zope would be a good idea if the Zope people stopped having revolutionary ideas and sat down to document and clean up what they already have... :)

    1. Re:Plone-esque proportions by Anonymous Coward · · Score: 1, Informative

      We just lost half a year trying to build a scalable Intranet site with Plone and Zope, for an organisation which really needs that scalability. Never again.

      We even had some of Europe's best Plone/Zope experts on the project, and they came to the conclusion that it's not really possible (outside some very narrow fields where you can just use Squid or other similar caching to create scalability from where there is none) to create scalable web applications using those tools.

      One of the largest problems was the fact that there are only two Oracle adapters for Python, of which neither is really production-ready, compared to JDBC connectivity or the Perl Oracle modules, or any of the C OCI redirect APIs I've seen.

      Summa summarum: we came to the conclusion that the only people who should invest in Zope products and knowledge are those who expect to profit from directly selling that knowledge - as a serious tool Zope/Plone certainly doesn't have anything over Java or even PHP and .NET.

      Unfortunately, those UI screens people generally demonstrate make it a dangeously seductive waste of time.

  10. Check out JAM for Maven by alphafoo · · Score: 5, Informative
    I started using Maven about a month ago, just to see what all the fuss was about. There is a lot to it, and it can be overwhelming. But there is a good middle ground between roll-your-own-ant and Maven, and it's called Javagen Ant Modules (JAM) and it's here.

    What I got from JAM that is useful to me:

    • dependency management automatically downloads library JARs for me during build.
    • common build.xml file and framework, so all my Maven projects have same basic structure.
    • Reduced learning curve so I could get going without learning everything about Maven all at once.
    • access to lots of cool Maven "plugins" like maven-eclipse that integrate the whole thing into my Eclipse3.0 setup.
  11. Re:Not the only thing left out: it's for Java only by radish · · Score: 4, Informative

    Not true. It uses ant, ant can do anything (think of it as a replacement for make). People here build C, C++ and a bunch of other stuff using ant. With the correct modules you wrap all that up (with your Java components) into one nicely managed project.

    Sure it's written _in_ Java, but it's not just _for_ Java (but naturally, the user community is heavily biased in that direction).

    --

    ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  12. Re:Not the only thing left out: it's for Java only by clamatius · · Score: 5, Informative

    It's technically possible but part of the point of the thing is that you don't have to spend forever writing build scripts to get going. So once there's a set of users writing plugins with better support for (e.g.) C# and C++, sure it'll be agnostic.

    Right now it's effectively a Java tool since most of the plugins are for Java (jar, javac, javadoc, junit, etc).

  13. Re:OT: FOSS competitor to Microsoft Project? by _termx23 · · Score: 3, Informative

    Try dotproject.

    http://www.dotproject.net

    Not yet the equal of M$ Project, but given time...

  14. It a time saver by Anonymous Coward · · Score: 1, Informative

    I've found Maven to be very handy. It can be really hard to write a portable build script in Ant (especially if you use several external JARs). Maven will automatically download dependencies and build your classpath.
    Back when I used Ant I had to write a new build script for every project. Maven is able to handle most of that kind of thing for you.

  15. Re:definition by M1FCJ · · Score: 4, Informative
    If you download the maven source, with a minimal set of configuration, you have something going because Maven is used to build Maven.

    If you are building a new project, it takes a couple of hours on a sizeable project, if it is quite complex, it will take some time to incorporate everything. You can't build a complicated compile/tool chain without spending some time.

    It is more visual compared to ant, more interactive. Ant is just a workhorse, this has some estethics. On the other hand, if you are happy with ant, maven doesn't add anything new.

    If you are going to start a new project, give Maven a try. If you already have something mature based on complicated Ant scripts, moving to Maven won't add any value to your development system.

  16. Re:Not the only thing left out: it's for Java only by nettdata · · Score: 4, Informative

    Sadly, the headline also left out the rather key information that this tool is for Java projects only.


    Actually, no, it's not. We use it to build C code, install and configure Oracle and DB2 databases, automate some OpenSSL stuff, put together PHP sites, and rsync stuff all over the place. We also use it for managing our main Java app as well.

    Just the tool is Java-based.

    --



    $0.02 (CDN)
  17. Re:definition by MythMoth · · Score: 4, Informative

    Hmm... I seem to have been modded funny for that, but actually I kind of mean it.

    Having tried to use a couple of projects that depended upon it, I found that maven really was quite painful to use, and the projects seemed less "clean" than ones built by Ant with greater constraints on the library versions they can use.

    Worse yet, trying to build a project that's been mavenized when you're subsisting on 28.8K thinband is a nightmare. Maven's repository may seem like a great idea, but it's a terrible one for anyone behind a restrictive proxy, or otherwise unable to take advantage of this "feature".

    If you are choosing between a project based on maven and one based on Ant then I'd recommend the Ant one. Maven has no features that I consider compelling over and above Ant, but it is much more complicated, and it does introduce problems for some users' circumstances.

    --
    --- These are not words: wierd, genious, rediculous
  18. Ouch, not "JAM" ! Non Java-centric "jam" exists by Morgaine · · Score: 2, Informative

    But there is a good middle ground between roll-your-own-ant and Maven, and it's called Javagen Ant Modules (JAM) ...

    That's very bad news, because the open-source build tool "jam" already exists and has been around for a very long time. And it's really good too.

    People really ought to google a bit before picking names for their project tools. Sure, names can often be reused without conflict, but here both jam's are program build tools, and that's just plain short-sighted.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  19. My impressions of maven by scrytch · · Score: 3, Informative

    Maven is probably best thought of as a java equivalent to portage, i.e. it concerns itself with fetching, building, packaging (including metadata like authors and such), and version tracking. It just lacks a browseable set of package skeletons the way ports and portage does.
    I used maven about a year ago, and I found it to be incredibly slow, bloated, underdocumented, amateurish, slipshod, and oh yes, buggy. It seems designed around some sort of "kitchen sink" approach of "xml is kewl, plugins are kewl, let's glom it all together and make something ... kewl".

    Honestly, whenever I see the word "plugin", I think someone hasn't really designed things well. Instead of providing a coherent app, they make a library of functions and let random piecemeal bits added after the thought take over the actual functioning. I'm not knocking component design, just the typical thought process that goes into typical "plugin" architectures. Stick with ant, you'll be much more sane for it.

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
  20. try the ACTUAL bile by BoxedFlame · · Score: 3, Informative

    Why Maven Sucks

    The bile you linked is just a reminder so no one forgets that it indeed still sucks.

  21. Re:Its a love it or hate it project by svetlin · · Score: 5, Informative

    Unfortunately most people seem to hate it.
    Maven mailing list(s) is one of the most active ones, with +50 messages a day. Most articles and comments at ServerSide, IBM DeveloperWorks and elsewhere are quite favorable toward it. Many major projects (e.g. Geronimo) are using it.

    I dont like supposed development aides thats want to tell me how I should organise everything to suit its quirks rather than my preferences.
    Maven follows well established practices (e.g. directory structure) from the Apache Jakarta projects. Accustomed to Ant's freedom, I also was unhappy with some defaults/behaviors initially, but gradually all of them made sense.

    Its really irritating when this demands vast amounts of configuration to achieve
    I interpret this to mean that attempting to implement your quirks in Maven took vast amount of configuration to achieve, and have no objection to that.
    Another massive configuration effort is required when an existing complex and rather quirky Ant build of a large application is migrated to Maven (as it was in my case, I should mention that I wrote also the Ant build ;-)).
    But starting with Maven on a common medium-sized app is relatively easy when using the GenApp plugin.

    requires a scripting language who creator has apologised for creating an abomination
    I agree here. I also do not like the idea of executable XML, of using XML as a programming language. Please note, however, that Jelly is an interface for tags in Maven used to implement plugins. In principle, any mechanism for embedding tags will do (and there is significant work in this direction for v2 AFAIK).

    So, apart from personal taste, Maven is quite a solid production-ready project build and comprehension tool.

    --
    Svetlin

  22. see qbal.mozdev.org by bigusputicus · · Score: 2, Informative

    I posted earlier anonymously. I'm bulding a superset of what Maven provides for Linux distros and projects. Been building engineering intranet sites since 95 that provide some of the features maven has along with some features maven does not have. QBAL will be GPL'd. I'm coming up to speed on Mozilla/XUL now and will have something ready this fall. Take a look at http://qbal.mozdev.org to get an idea of the scope.

    Bigusputicus

  23. Re:Screenshot by dubious9 · · Score: 2, Informative

    Erm... so you didn't really read the page huh? Maven is a project automation tool, not a build automation tool. You configure it to do (continuous) builds, but also to do documention, collaboration etc.

    I guess I shouldn't be too surprised, I wasn't on the bandwagon either until I actually used it for a project.

    --
    Why, o why must the sky fall when I've learned to fly?