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