I'd rather go the other way. Rip out the ability to reference parent poms using relative paths, and these sort of reports would go away, because it's *clear* that building A3 will not cause B1 or B2 to be built.
Using relative paths to poms solves a small subset of problems, in smallish projects. But when projects start to scale up, relative paths don't work. And they make people *think* in path-oriented ways, rather than thinking in repository-oriented ways. Regards, Simon Joshua ChaitinPollak schrieb: > I've noticed the following behavior, which I find a bit frustrating: > > Using Amit's project layout below, if I cd into A3 and run 'mvn > compile', its going to use the B1 and B2 projects from my local > repository, even if I referenced a parent pom in A3. I wish Maven > would use the parent pom to determine if B1 and B2 were available, and > compile them as well. > > In addition, I've noticed that maven gets confused if you have modules > depend on the test jars (or worse, assemblies) of other modules. For > example, I have this setup: > > Root > - server > - server-integration-tests > > The server-integration-tests are implemented as tests (so no > production code), but the project has a dependency on the server, the > server:test-jar, as well as the server:tar.bz2. > > But when I run mvn test-compile from root, I get errors saying that > the server:test-jar and server:tar-bz2 cannot be found. > > My only option is to run "mvn install", which seems to work. > > I guess what I'm saying is that maven only runs the phase you > specified at the commandline, for all modules in the pom, and I wish > it would take phase into consideration when executing dependencies. If > I run: > > mvn test-compile at the root of my project, it should be smart enough > to run mvn package on the 'server' module and provide that package to > the 'server-integration-tests' module. > > -Josh > > On Mar 21, 2008, at 9:31 AM, amit kumar wrote: > >> How to list that dependency? I do have the dependency of A3 on B1 and >> B2(in >> the <dependency> tag as jar). But that doesn't seems to make Maven go to >> build B1 and B2 when building A3 because I guess it looks in the >> repository, >> if not there it throws an error. >> >> If it has been working in this way, it would have been the solution. >> But I >> am not able to see that happening. >> >> Is there a different way of mentioning a project As' dependency on >> another >> projectB that would trigger the build of projectB as soon as it finds >> in the >> dependencies? of that project? >> >> >> Regards, >> Amit. >> >> On Wed, Mar 19, 2008 at 6:49 AM, Brian E. Fox <[EMAIL PROTECTED]> >> wrote: >> >>> Maven starts with the ordering listed in the poms (A and its children, >>> then B and its children, etc) unless there is a dependency. If it >>> sees a >>> dependency, then it will automatically reorder by pushing down modules >>> that have a dependency so they build after their dep. >>> >>> I'm wondering why the order matters if you don't have a dependency >>> listed (I'm assuming you don't or it would be ordered already). >>> >>> -----Original Message----- >>> From: amit kumar [mailto:[EMAIL PROTECTED] >>> Sent: Tuesday, March 18, 2008 4:42 AM >>> To: Maven Users List >>> Subject: Customizing Build order >>> >>> Hi, >>> I have a multi-module project with the following structure. >>> >>> Root >>> -A >>> -A1 >>> -A2 >>> -A3 >>> -B >>> -B1 >>> -B2 >>> -B3 >>> -B4 >>> >>> >>> In the Root's pom i have mentioned my modules as: >>> <module>A</module> >>> <module>B</module> >>> >>> Now is there a way that I can change the normal build order(which is) >>> >>> -Root >>> -A >>> -A1 >>> -A2 >>> -A3 >>> -B >>> -B1 >>> -B2 >>> -B3 >>> -B4 >>> >>> >>> to something like >>> >>> -Root >>> -A >>> -A1 >>> -A2 >>> -B >>> -B1 >>> -B2 >>> -A3 >>> -B4 >>> >>> It is actually a requirement. But I doubt that there is a possibility >>> that >>> the CVS structure itself is not competent enough then to handle >>> inter-module >>> dependencies. >>> >>> Any inputs? >>> >>> Thanks and regards, >>> Amit Kumar >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]