You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Costin Caraivan (JIRA)" <ji...@codehaus.org> on 2010/12/13 13:59:59 UTC

[jira] Created: (MNG-4932) Require package instead of install for making artifacts available to other modules inside the same multi module build/reactor

Require package instead of install for making artifacts available to other modules inside the same multi module build/reactor
-----------------------------------------------------------------------------------------------------------------------------

                 Key: MNG-4932
                 URL: http://jira.codehaus.org/browse/MNG-4932
             Project: Maven 2 & 3
          Issue Type: Improvement
            Reporter: Costin Caraivan


Hello,

When building a project with multiple modules, downstream modules in the hierarchy (modules which need other modules) should just use the local packages found in target, instead of requiring installation.

During the build life cycle, at the package phase, Maven should already have available all the information required to add the artifacts created to the classpath of the downstream modules. Requiring the install to be performed means that:
1. lots of duplicates are created (packages in the target folder, packages in the repository)
2. time wasted (files need to be copied around, and this becomes problematic especially if the file are on different partitions/filesystems)
3. disk space wasted (not a big problem, but becomes one in an integration server)
4. disk thrashing (again, not a major problem, but it would be nice to avoid it)

Basically, project A has 20 modules, and the delivery depends on the other 19. These 19 are small jars, some small dlls, some small tgz, and big zips with resources. Installing means that the zips need to be moved around twice:
1. install to repo
2. copy from repo

The proposed solution is:
When building a multimodule project, first check what is packaged by the other modules. If something is found in one of the other modules, copy it directly from that module, from the project.build.directory.

Basically keep install just to share between multiple projects built on the same machine.

Thank you.

-- 
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

        

[jira] Closed: (MNG-4932) Require package instead of install for making artifacts available to other modules inside the same multi module build/reactor

Posted by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-4932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Bentmann closed MNG-4932.
----------------------------------

    Resolution: Incomplete
      Assignee: Benjamin Bentmann

bq. When building a multimodule project, first check what is packaged by the other modules. If something is found in one of the other modules, copy it directly from that module, from the project.build.directory.
This is how it generally works in Maven, it's even possible to just run "mvn compile" or "mvn test" on a multi-module project.

If you have a concrete issue, be sure to try Maven 3.0.1. That still failing, please provide a concrete example project to demonstrate your issue.

> Require package instead of install for making artifacts available to other modules inside the same multi module build/reactor
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-4932
>                 URL: http://jira.codehaus.org/browse/MNG-4932
>             Project: Maven 2 & 3
>          Issue Type: Improvement
>            Reporter: Costin Caraivan
>            Assignee: Benjamin Bentmann
>
> Hello,
> When building a project with multiple modules, downstream modules in the hierarchy (modules which need other modules) should just use the local packages found in target, instead of requiring installation.
> During the build life cycle, at the package phase, Maven should already have available all the information required to add the artifacts created to the classpath of the downstream modules. Requiring the install to be performed means that:
> 1. lots of duplicates are created (packages in the target folder, packages in the repository)
> 2. time wasted (files need to be copied around, and this becomes problematic especially if the file are on different partitions/filesystems)
> 3. disk space wasted (not a big problem, but becomes one in an integration server)
> 4. disk thrashing (again, not a major problem, but it would be nice to avoid it)
> Basically, project A has 20 modules, and the delivery depends on the other 19. These 19 are small jars, some small dlls, some small tgz, and big zips with resources. Installing means that the zips need to be moved around twice:
> 1. install to repo
> 2. copy from repo
> The proposed solution is:
> When building a multimodule project, first check what is packaged by the other modules. If something is found in one of the other modules, copy it directly from that module, from the project.build.directory.
> Basically keep install just to share between multiple projects built on the same machine.
> Thank you.

-- 
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