You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brett Porter (JIRA)" <ji...@codehaus.org> on 2008/12/18 15:02:20 UTC
[jira] Closed: (MNG-2507) multi module install has a race condition
[ http://jira.codehaus.org/browse/MNG-2507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brett Porter closed MNG-2507.
-----------------------------
Assignee: Brett Porter
Resolution: Not A Bug
Fix Version/s: (was: Reviewed Pending Version Assignment)
maven runs in sequence, not in parallel
> 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
> Assignee: Brett Porter
>
> 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