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