You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Madhav Bhargava <un...@gmail.com> on 2012/01/25 15:47:18 UTC

Order of maven multi module is not maintained for eclipse plugins

Hi,

We have a bunch of eclipse plugin projects, features and update sites. We
have created a master pom where we define the modules:

<modules>
    <module>bundles/b1</module>
    <module>features/f1</module>
    <module>p2/site1</module>
    <module>bundles/b2</module>
</modules>

We wanted to preserve this order and as per Guide to working with Multiple
Modules <http://maven.apache.org/guides/mini/guide-multiple-modules.html> As
per the link above we assumed that the order will be preserved as per the
order in which the module elements were listed.

Our requirement: site1 produces a site_assembly.zip. We wanted to take this
zip file and wrap into around into a bundle which is what "b2" bundle does.

*Our observation:*

   1. Maven reactor order which is printed at the beginning of the
   multi-module build is proper, however the build for every module is forked.
   2. Because of (1) the bundle b2 get built before the site1 project is
   build and is able to produce a site assembly zip.
   3. We tried adding a dependency in "b2"'s pom.xml to site1 but the build
   failed as it tries to build b2 first which has dependency on site1 which
   has not been built till now.
   4. We observed the same behavior when we had unit test as osgi fragment.
   In the order we clearly specified that the host comes before the test
   fragment but when the maven build is invoked then it always built the
   fragment before the host and it used to fail.

Plugins that are defined in master pom:

 <plugin>
            <!-- enable tycho build extension -->
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-maven-plugin</artifactId>
            <version>${tycho-version}</version>
            <extensions>true</extensions>
        </plugin>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho-version}</version>
            <configuration>
                <disableP2Mirrors>true</disableP2Mirrors>
                <resolver>p2</resolver>
                <target>
                    <artifact>
                        <groupId>com.x.y</groupId>
                        <artifactId>p2.build.target</artifactId>
                        <version>${project.version}</version>
                        <classifier>x</classifier>
                    </artifact>
                </target>
            </configuration>
        </plugin>

We are not sure if maven-tycho-plugin interferes with the reactor order, so
any help would be appreciated.
Best Regards,
Madhav

Re: Order of maven multi module is not maintained for eclipse plugins

Posted by Jason van Zyl <ja...@tesla.io>.
This is a Tycho specific question, ask on the Tycho user list @ Eclipse

https://dev.eclipse.org/mailman/listinfo/tycho-user

On Jan 25, 2012, at 9:47 AM, Madhav Bhargava wrote:

> Hi,
> 
> We have a bunch of eclipse plugin projects, features and update sites. We
> have created a master pom where we define the modules:
> 
> <modules>
>    <module>bundles/b1</module>
>    <module>features/f1</module>
>    <module>p2/site1</module>
>    <module>bundles/b2</module>
> </modules>
> 
> We wanted to preserve this order and as per Guide to working with Multiple
> Modules <http://maven.apache.org/guides/mini/guide-multiple-modules.html> As
> per the link above we assumed that the order will be preserved as per the
> order in which the module elements were listed.
> 
> Our requirement: site1 produces a site_assembly.zip. We wanted to take this
> zip file and wrap into around into a bundle which is what "b2" bundle does.
> 
> *Our observation:*
> 
>   1. Maven reactor order which is printed at the beginning of the
>   multi-module build is proper, however the build for every module is forked.
>   2. Because of (1) the bundle b2 get built before the site1 project is
>   build and is able to produce a site assembly zip.
>   3. We tried adding a dependency in "b2"'s pom.xml to site1 but the build
>   failed as it tries to build b2 first which has dependency on site1 which
>   has not been built till now.
>   4. We observed the same behavior when we had unit test as osgi fragment.
>   In the order we clearly specified that the host comes before the test
>   fragment but when the maven build is invoked then it always built the
>   fragment before the host and it used to fail.
> 
> Plugins that are defined in master pom:
> 
> <plugin>
>            <!-- enable tycho build extension -->
>            <groupId>org.eclipse.tycho</groupId>
>            <artifactId>tycho-maven-plugin</artifactId>
>            <version>${tycho-version}</version>
>            <extensions>true</extensions>
>        </plugin>
>        <plugin>
>            <groupId>org.eclipse.tycho</groupId>
>            <artifactId>target-platform-configuration</artifactId>
>            <version>${tycho-version}</version>
>            <configuration>
>                <disableP2Mirrors>true</disableP2Mirrors>
>                <resolver>p2</resolver>
>                <target>
>                    <artifact>
>                        <groupId>com.x.y</groupId>
>                        <artifactId>p2.build.target</artifactId>
>                        <version>${project.version}</version>
>                        <classifier>x</classifier>
>                    </artifact>
>                </target>
>            </configuration>
>        </plugin>
> 
> We are not sure if maven-tycho-plugin interferes with the reactor order, so
> any help would be appreciated.
> Best Regards,
> Madhav

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
---------------------------------------------------------