multi module install has a race condition
-----------------------------------------
Key: MNG-2507
URL: http://jira.codehaus.org/browse/MNG-2507
Project: Maven 2
Issue Type: Bug
Components: Bootstrap & Build, Dependencies
Affects Versions: 2.0.4
Environment: Windows XP SP1; netbeans 5.0 using maven2 plugin; running
on a notebook, disconnected from any central repository using only the local
repository
Reporter: Stefan Stieglitz
Multi module projects (using a root project with pom packaging) are likely to
run into a race condition when performing a multi module build. It seems to me
that the installing of a just build (jar-) file for module A and the compile
goal of the next build of a module B, run both in different threads. These
threads are not sufficently synchronized. This can result in an "artifact is
missing" error if B has a dependeny on A. Even worse, if an old jar from a
previous build is still in place, module B is compiled against old code. To
handle this, one has to search for any dependencies and build all modules
manually in an appropriate order.
It is likely that this bug has no effect, if an up to date central repository
is accessible.
Suggestion to fix this: Wait until each build is completely finished, before
performing the next step of a multi module build.
Simplified example POMs:
root:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>vendor</groupId>
<artifactId>root</artifactId>
<name>root</name>
<packaging>pom</packaging>
<modules>
<module>A</module>
<module>B</module>
</modules>
</project>
module A:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>vendor</groupId>
<artifactId>root</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>A</artifactId>
<name>A</name>
<packaging>jar</packaging>
</project>
module B:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>vendor</groupId>
<artifactId>root</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>B</artifactId>
<name>B</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>vendor</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira