Maven 2.0 Released

Discussions

News: Maven 2.0 Released

  1. Maven 2.0 Released (21 messages)

    The Maven team is pleased to announce that Maven 2.0 has been released, and is available for download.

    Maven is a build system that provides software project management and comprehension. Based on the concept of a project object model (POM), Maven manages a project's build, reporting and documentation from a central place.

    Maven 2.0 is a rewrite of the popular Maven application, designed to both address previous functional requirements and provide a stable platform for extending and enhancing its build management framework.

    This release is significantly faster and smaller than Maven 1.0 and includes the following usability and performance improvements:
    • Enhanced Dependency Management - includes dependency closures (transitive dependencies), version ranges, automatic build numbering, and automatic updating on a configurable interval
    • Defined Build Lifecycle - developers can build any type of project using standard commands such as compile, test and install
    • Unified Project Definition - manages all required build information in a single POM now, including project information, dependencies and plugin configuration
    • Extended Plugin Architecture - supports Java and scripting languages such as Beanshell for plugin development
    • Better Repository Support - includes separated snapshot repositories, a new more managable layout and per-project definitions of new repositories
    • Expanded Reactor Operation - offers built-in support for multiple projects (without the need to perform a full install cycle to compile all projects) and support for project aggregation
    • New Site Management Tools - supports multiple input and output formats, with input formats including wiki-like APT format and docbook, while continuing to support traditional Maven XDoc and FAQ format.
    • New Reporting API - offers a standardised method for producing project information and reports
    The Maven 2.0 release is considered stable and includes a complete feature set from Maven 1.0, with additional functionality. The most popular Maven 1.0 plugins have been converted for Maven 2.0, and many more are available in beta.

    See the plugin matrix for more information on particular plugins.

    Maven's advanced dependency management features rely on project metadata. If you are interested in improving support for the users of your project, see http://maven.apache.org/maven2/project-faq.html

    The Maven team would like to express thanks to the user and developer community for their beta testing, feedback and contributions that helped make the release possible!

    To get started with Maven now, see the getting started guide at http://maven.apache.org/maven2/guides/getting-started/index.html

    Threaded Messages (21)

  2. Expanded Reactor Operation how-to[ Go to top ]

    As a consultant I saw a lot of projects that were usig ant. But the problem was that the bigger the project got, the bigger the development team became, the harder it seemd to use ant ... well that's my 5 cent offcoarse ... so I started playing with Maven2 just last week and it seemed to solve some 'projects getting bigger' problems. It seemed to me that the wheel (ant targets) were being reinvented each time I worked on a new project.

    But I have still some unaswered questions surrounding the use of multiple projects within Maven. Let me clarify:

    For a recent project we are using the Spring framework and each reusable module has its own Eclipse project. We have multiple applications (end products) that depend on muliple modules (which must be deployed as jars and wars on the same server so that they can be reused).

    So I would like to know how Maven2 helps me simplify the dev/build cycle. The article talked about Expanded Reactor Operation and how it simplifies the build process when using multiple projects. A small conceptual how-to are explaination would be great.

    Keep on the good work
  3. Things I miss from 1.0[ Go to top ]

    It'll take some time, but here are somethings I would miss:

    mevenide support.
    exe installer.
    cactus

    There is supposedly XDoclet support, I haven't tried it out yet.

    Though there are a number of improvements, I am not sure if it is still enough to pass through "bile blog" :)
  4. Things I miss from 1.0[ Go to top ]

    It'll take some time, but here are somethings I would miss:mevenide support.exe installer.cactusThere is supposedly XDoclet support, I haven't tried it out yet.Though there are a number of improvements, I am not sure if it is still enough to pass through "bile blog" :)

    XDoclet? Do people still use that?

     S.
  5. XDoclet support[ Go to top ]

    While Maven itself is final, the plug-ins for are not (and you can't get anything done without them).
    XDoclet plugin is 'described' (but it's not documented) here:
    http://mojo.codehaus.org/xdoclet-maven-plugin/

    XDoclet plug-in did not seem to work for me so I figured that for now you must write XML descriptors by hand or use annotations where possible and appropriate. From the latest check-in date it seems that this plug-in is abandonware for now??
    http://svn.mojo.codehaus.org/trunk/mojo/xdoclet-maven-plugin/

    P.S. It seems to me that passing_the_bile_blog is not a function of project quality. It's a very deterministic function that returns not passed no matter which project is passed into it.
    f_pass_bile-blog(proj) -> false, for any proj.
  6. IDE support is in the works[ Go to top ]

    Work began on Eclipse support before the 2.0 release and work has begun on IDEA and Netbeans support as well. It won't be long before IDEs are fully supported.
  7. Things I miss from 1.0[ Go to top ]

    It'll take some time, but here are somethings I would miss:mevenide support.exe installer.cactusThere is supposedly XDoclet support, I haven't tried it out yet.Though there are a number of improvements, I am not sure if it is still enough to pass through "bile blog" :)

    Things I miss:

    documentation
    preGoal
    postGoal
    something that looks like ant (maven.xml)
  8. Maven 2.0 Released[ Go to top ]

    Congratulations:congratulations on the release:release.
  9. How fast it is?[ Go to top ]

    To me Maven is good for a corporate Java shop: the repository, the plugins provide a much needed tools that help the standardization of the development process and artifacts but I can't tolerate its slow speed when actively working in the edit-deploy-test/debug cycle.

    How fast it is against Maven 1.0?
    and to a Ant using a similar build file?
  10. How fast it is?[ Go to top ]

    To me Maven is good for a corporate Java shop: the repository, the plugins provide a much needed tools that help the standardization of the development process and artifacts but I can't tolerate its slow speed when actively working in the edit-deploy-test/debug cycle.How fast it is against Maven 1.0? and to a Ant using a similar build file?

    From:
    http://www.thespringexperience.com/speaker_view.jsp?speakerId=45#blogItem96893
    "Maven 2 is faster than Ant". - Matt Raible

    I agree that maven 1 was very slow. There is/was two approaches to deal with it:
    1. Use maven's console plug-in
    2. Set-up an environment where maven will work in synergy with IDE. For instance Eclipse will compile files on the fly and all is needed is to make sure that Eclipse places compiled .class files in the right folder.

    In my limited experience maven 2 is much faster then maven (I have not used ant for a while now, so I can't compare)
  11. How fast it is?[ Go to top ]

    [...]
    Set-up an environment where maven will work in synergy with IDE. For instance Eclipse will compile files on the fly and all is needed is to make sure that Eclipse places compiled .class files in the right folder.
    [...]

    IMHO, that's a _VERY_ bad practice. An IDE should never be the "leading system" in an automated build process. I agree, that it is very useful to have inter-op between the build process and the IDE. But only the other way around, i.e. the build process places the artifacts in directories that the IDE will read from.

    Regrads,
        Dirk
  12. re: How fast it is?[ Go to top ]

    [...]Set-up an environment where maven will work in synergy with IDE. For instance Eclipse will compile files on the fly and all is needed is to make sure that Eclipse places compiled .class files in the right folder.[...]
    IMHO, that's a _VERY_ bad practice. An IDE should never be the "leading system" in an automated build process. I agree, that it is very useful to have inter-op between the build process and the IDE. But only the other way around, i.e. the build process places the artifacts in directories that the IDE will read from. Regrads,    Dirk

    Errm, I think it *is* good practice for development, b/c you leverage the IDEs compiling capabilities.

    However, if you talk about releasing software i agree with you. Then the build tool has to create all artifacts (incl. class files).

    -Stefan
  13. re: How fast it is?[ Go to top ]

    [...]Set-up an environment where maven will work in synergy with IDE. For instance Eclipse will compile files on the fly and all is needed is to make sure that Eclipse places compiled .class files in the right folder.[...]
    IMHO, that's a _VERY_ bad practice. An IDE should never be the "leading system" in an automated build process. I agree, that it is very useful to have inter-op between the build process and the IDE. But only the other way around, i.e. the build process places the artifacts in directories that the IDE will read from. Regrads,    Dirk
    Errm, I think it *is* good practice for development, b/c you leverage the IDEs compiling capabilities.
    [...]

    But then you need the implicit knowledge, that a correct build can only be produced if you first compile your sources with yout IDE. This can get abitrarily complex, e.g. do you perform also aspect waeving from out of the IDE, EJB compile, RMI compile, where do you stop there? IMHO an automated build process should perform a build ... uhmm ... automated.

    I further don't quite understand what you mean with "IDEs compiling capabilities". Is that some sort of caching, that some IDEs do?

    Regards,
        Dirk
  14. re: How fast it is?[ Go to top ]

    Dirk,

    indeed, builds should be automated and run without prior compilation within an IDE. (I had this before in a project and i changed it immediately after i joined.) Also, Maven's SCM plugin helps you to do an absolutely clean build in a new directory.

    However, IDEs are wonderful tools for development - if you save one Java file, the IDE compiles it and all other Java files which are dependent on it. It displays you errors and warnings before doing a "proper" build with your build tool of choice. And the compilation is just quicker. That's what i mean by 'IDEs compiling capabilites'.

    Does that make sense?

    -Stefan
  15. IDE is secondary[ Go to top ]

    It displays you errors and warnings before doing a "proper" build with your build tool of choice. And the compilation is just quicker. That's what i mean by 'IDEs compiling capabilites'.

    Does that make sense?
    Not for me. You seem to think that classes have to be compiled in order to discover errors. This is the feature(deficiency perhaps) of your IDE (I guess it is Eclipse).
    There are other IDEs like IDEA that operate on AST (abstract syntax tree ) and they do not need to compile classes to discover errors etc.

    IDE must be secondary tool and main build system (Ant or Maven) should be extensively used for development activities.

    a. Everyday use ‘forces’ to increase efficiency of the build system, and results very efficient build system;
    b. Simplifies environment;
    c. Gives developers freedom to use any IDE they like, or no IDE at all;
    d. Save time by eliminating painful comparisons between developer build process, and the one on build server.
  16. IDE is secondary[ Go to top ]

    There are other IDEs like IDEA that operate on AST (abstract syntax tree) and they do not need to compile classes to discover errors etc.

    What makes you think eclipse would not use AST?
    IDE must be secondary tool and main build system (Ant or Maven) should be extensively used for development activities.

    eclipse offers best of both worlds.
  17. IDE is secondary[ Go to top ]

    What makes you think eclipse would not use AST?
    Last time I checked Eclipse had to compile classes before it was able to show bugs. Might have changed since.
    eclipse offers best of both worlds.
    Could you share with us how to run Eclipse in non-visual environment on a build server overnight and produce dev – stage – and production releases for v1 and v2-trunc + couple of per-client customized branches?

    And how about poor souls which do not like Eclipse as IDE?
  18. IDE is secondary[ Go to top ]

    Could you share with us how to run Eclipse in non-visual environment on a build server overnight and produce dev – stage – and production releases for v1 and v2-trunc + couple of per-client customized branches?
    I'm not proposing to use eclipse as the one and only build tool (although its possible even in headless environments because eclipse is fully programmable - remember that its a platform, not a monolithic tool). All my (larger) projects still have ANT build-files and build pretty well without eclipse, BUT during development I don't need to start ant at all unless I want too.
    And how about poor souls which do not like Eclipse as IDE?
    What about them?
  19. IDE is secondary[ Go to top ]

    It displays you errors and warnings before doing a "proper" build with your build tool of choice. And the compilation is just quicker. That's what i mean by 'IDEs compiling capabilites'.Does that make sense?
    Not for me. You seem to think that classes have to be compiled in order to discover errors. This is the feature(deficiency perhaps) of your IDE (I guess it is Eclipse).There are other IDEs like IDEA that operate on AST (abstract syntax tree ) and they do not need to compile classes to discover errors etc. IDE must be secondary tool and main build system (Ant or Maven) should be extensively used for development activities.a. Everyday use ‘forces’ to increase efficiency of the build system, and results very efficient build system;b. Simplifies environment;c. Gives developers freedom to use any IDE they like, or no IDE at all;d. Save time by eliminating painful comparisons between developer build process, and the one on build server.

    mevenide for netbeans does exactly that. the IDE uses the maven project data as primary and only source of project information. just open the project, no synchronization necessary. maven used for building as well of course. works with maven 1.0.2 currently, not 2.0.

    http://www.oreillynet.com/pub/wlg/8122
  20. re: How fast it is?[ Go to top ]

    Dirk,

    indeed, builds should be automated and run without prior compilation within an IDE. (I had this before in a project and i changed it immediately after i joined.) Also, Maven's SCM plugin helps you to do an absolutely clean build in a new directory.

    However, IDEs are wonderful tools for development - if you save one Java file, the IDE compiles it and all other Java files which are dependent on it. It displays you errors and warnings before doing a "proper" build with your build tool of choice. And the compilation is just quicker. That's what i mean by 'IDEs compiling capabilites'.Does that make sense?-Stefan

    I agree, that you should not use the build process during development just to check if your code compiles cleanly.

    Regarding compilation performance:
    I think, whether or not compilation using IDE is quicker than compilation using some build process strongly depends on two aspects: the IDE you are using, and the build process you implemented. For example, I used IDEA 4.5 for a quite large project (> 8.000 classes), where the preprocessing of the source files (dependency checking, cache management) took several minutes, _before_ the actual compile was performed by the IDE. Compiling the classes of that project using our ant-based build process was _way_ faster.

    Regards,
        Dirk
  21. How fast it is?[ Go to top ]

    [...]
    From:http://www.thespringexperience.com/speaker_view.jsp?speakerId=45#blogItem96893"Maven 2 is faster than Ant". - Matt Raible
    [...]

    I just looked at that blog entry, but the only statement regarding performance, that I have found, is the sentence "Maven 2 is faster than Ant" (maybe I missed something, if so I'm sorry). Now that is indeed one of the most useless statements I have ever heard: no data provided, nothing said about the context in which the performance was measured, nothing said about how it was measured (if at all, which I doubt).

    Regards,
      Dirk
  22. How fast it is?[ Go to top ]

    I have generally used XStream as a test bed for performance and I'll try to collect the simple stats I collected and post them for perusal.