In the geronimo project we are experiencing severe problems with our build related to plugins. Any advice on how to improve this situation would be appreciated.

Both maven 1.0.2 and 1.1-b2 are being used to build.

We have 5 plugins that are built as part of the build and used in the build. The build is currently structured as a sequence of reactor calls: the plugins are built in step 1 and used in steps 1, 2, 4, and 5.

Currently the maven.xml for each plugin looks like this:

<project default="plugin:install">
    <goal name="default">
        <attainGoal name="plugin:install"/>
    </goal>

    <goal name="plugin:install" prereqs="plugin:plugin">
        <attainGoal name="plugin:install-now"/>
        <attainGoal name="plugin:repository-install"/>
        <!--
        <copy file="${maven.build.dir}/${maven.final.name}.jar"
          todir="${maven.plugin.dir}" />
        -->
     </goal>


</project>

and the reactor calls this with the goal multiproject:install-callback. The repository-install command is needed both because we are using dependencies to order the build and because one plugin relies on itself being in the repository to function (it has to construct its own classpath including itself, but not other maven dependencies).

This works fine for some people and breaks for other people. Removing ~/.maven/cache and all copies of the geronimo plugins from the repo, $MAVEN_HOME/plugins and ~/.maven/plugins helps some people. Sometimes building the plugins individually helps. Sometimes repeating this procedure over and over again helps. When the build breaks, usually the plugin that is needed is not in the cache.

The commented out "copy" command seems to make the build more reliable on 1.0.2 and less reliable on 1.1-b2. I think that what is happening is that each plugin build is clearing the cache and the other plugins are not getting reloaded.

Can anyone suggest a way to produce a reliable build with the current plugin releases? We might be able to restrict ourselves to 1.1-b2. Will the proposed 1.7 plugin-plugin release help with this problem?

thanks
david jencks

Reply via email to