6 Replies Latest reply on Sep 5, 2007 6:40 AM by tom.baeyens

    Ivy for dependency management ?

    tom.baeyens

      last week, Charles almost had me convinced of Maven. In fact, I was and I am prepared to give it a try.

      But I had another look at the home page of Ivy http://incubator.apache.org/ivy/features.html And that seems even to be exactly what i want.

      So I want to give Ivy a try first and if that's no good I'll try maven.

      But I still do want all the pvm projects to use the same build mechanism and project layout.

        • 1. Re: Ivy for dependency management ?

          I was playing with Ivy today and I must confess that I was well surprised (even if there is no final version yet of the 2.0).

          For Ant users, Ivy is just an additional library to be copied under ant/lib directory. After that you are done, you can just start using this dependency manager in your ant projects.

          Ivy comes, as the maven dependecy manager, with features such transitive dependencies (dependencies of your dependencies are automatically handled), retieve and publish capabilities, local vs remote repository and xml description of modules and dependencies.

          Ivy also add some interesting features such Ivy module configurations. Module configuration is a way to use or to see a particular module. Multiple configurations so can be defined per module: i.e test configuration with hysql database, runtime configuration with MySql or also enterprise configuration (with EJB3) vs standard (JPA standad edition)

          Other added value features are: dependency reports, graphical view of dependencies or still extensible conflict management mecanism to handle dependencies versions.

          However, and this is probably the Ivy's drawback, there are not so many Ivy repositories out there or they do not contain a lot of of modules (i.e the official ivy repository, ivyrep only contains 50 modules).

          Artifacts can be downloaded from Maven 1 repositories (maven 2 respositories structure is not yet supported), but most of the important modules definition are missing in Ivy's repository or are not up to date(hibernate 3.x versions for instance). An overview of ivyrep can be seen here: http://www.jayasoft.fr/org/ivyrep/content.html

          Ivy can easily be installed and tested. Hereafter a link to the basic installation procedure: http://incubator.apache.org/ivy/history/trunk/install.html

          *Note: the Hello-Ivy sample is referencing a maven repository which has been updated so don't forget to update the following line if you try it out:

          <dependency org="apache" name="commons-lang" rev="2.1"/>
          


          by

          <dependency org="commons-lang" name="commons-lang" rev="2.1"/>
          


          inside ivy.xml located under src/examples/hello-ivy sample.



          If we decided to go for Ivy, both maven (for BPEL and XPDL extentions) and custom dependecy manager (PVM and Services modules) should be updated.

          Thoughts ?

          regards,
          Miguel Valdes

          • 2. Re: Ivy for dependency management ?
            tom.baeyens

            that is good news.

            i'll have a look next week and zoom in on the repositories part.

            i'm fairly confident that we can get R/W access to the jboss repository so that we can put there all the libs we need.

            • 3. Re: Ivy for dependency management ?

               

              "tom.baeyens@jboss.com" wrote:

              i'm fairly confident that we can get R/W access to the jboss repository so that we can put there all the libs we need.


              For configuration, your favorite repository can be defined in the ivysettings.xml file: [organisation], [module], [revision]... tags can be used to reach artifacts.

              Most tedious work would be to write modules dependencies if they are missing (in Ivy this is a xml file like pom files in maven).

              BTW, there is an Eclipse plugin to simplify this work: http://incubator.apache.org/ivy/ivyde/. Not yet available in the Eclipse incubator (same for the last final version of Ivy, 1.4, not available in Apache yet)

              regards,
              Miguel Valdes[/url]

              • 4. Re: Ivy for dependency management ?

                Looking into maven dependencies manager capabilities exclusively, I realized that Maven can be used same way than Ivy: just as an additional library to ant.

                So, if we are only looking for a dependencies manager, the choice is between Ivy or Maven ones.

                Thoughts ?

                regards,
                Miguel Valdes

                • 5. Re: Ivy for dependency management ?
                  camunda

                  Maven has the advantage that is quite known I think.

                  And as Miguel wrote, there are more repositories with much more libs in out out there for maven, so it might be easier from this perspective...

                  On the other hand, Ivy looks nicer :-)

                  Is there no "default" for JBoss?

                  • 6. Re: Ivy for dependency management ?
                    tom.baeyens

                    for Ivy the description is 'transitive deps mgmt with ant'. so you know that it will do the trick.

                    for maven, the fact that you can just use that part just like maven is new to me. so i would like to have this thoroughly verified that it work properly. if that is the case, i don't have a preference.