You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by "Grothaus, Christoph" <CG...@zeb.de> on 2006/02/08 10:38:56 UTC
[m2] Multi-Project setup and
Hi maven-users!
I've got a m2 project with several levels of sub-modules, held together by a main pom of packaging type "pom". In each sub-module there is a <parent> entry pointing to the module above, including the <relativePath> tag pointing to "../" .
I don't quite understand the use of the <relativePath> tag. If I build the whole project, everything works fine, obviously because I'm starting the reactor from the top. If I try to build only sub-module X maven complains that it can't get the poms for the other sub-modules X depends on. Okay, now I could solve that if I ran mvn install on all sub-modules X needs. But what use is the <relativePath> tag then? Wouldn't it be nicer if maven saw that there is a parent module and that the other sub-modules X needs are not so far away?
Maybe I look at this from the wrong direction and should get used to walk up some directories to start a reactor build. But I come back to my initial question: why is there a <relativePath> tag if maven doesn't look at it and just looks at the (local and remote) repos?
Christoph Grothaus
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [m2] Multi-Project setup and
Posted by Edwin Punzalan <ep...@exist.com>.
Hi,
From how I understand on how the <relativePath> works, it is used for
resolving the parent pom (being inside the parent tag).
When you run mvn on a sub-module, mvn detects that the sub-module has a
parent and mvn tries to resolve that using either the
groupId:artifactId:version for the parent tag or the relativePath if it
is not available in the local/remote repository yet.
Although your argument is valid (please create a jira request if you
want), I would not suggest that its a good approach.
Consider this scenario:
parentA has modules moduleA and moduleB where moduleB depends on moduleA.
If I try to build moduleB, when mvn finds that moduleA has not yet been
installed, then it will try to build moduleA. but what if during the
build of moduleA, a problem occurred? Then it will be confusing for me
to see the moduleA errors when I was trying to build moduleB.
So the approach is, if you want to use an artifact, then that artifact
must have been previously built and installed for use by other projects.
Just my two cents, btw.
^_^
Grothaus, Christoph wrote:
>Hi maven-users!
>
>I've got a m2 project with several levels of sub-modules, held together by a main pom of packaging type "pom". In each sub-module there is a <parent> entry pointing to the module above, including the <relativePath> tag pointing to "../" .
>
>I don't quite understand the use of the <relativePath> tag. If I build the whole project, everything works fine, obviously because I'm starting the reactor from the top. If I try to build only sub-module X maven complains that it can't get the poms for the other sub-modules X depends on. Okay, now I could solve that if I ran mvn install on all sub-modules X needs. But what use is the <relativePath> tag then? Wouldn't it be nicer if maven saw that there is a parent module and that the other sub-modules X needs are not so far away?
>
>Maybe I look at this from the wrong direction and should get used to walk up some directories to start a reactor build. But I come back to my initial question: why is there a <relativePath> tag if maven doesn't look at it and just looks at the (local and remote) repos?
>
>Christoph Grothaus
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>For additional commands, e-mail: users-help@maven.apache.org
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org