Re: Customizing Build order

2008-03-22 Thread amit kumar
Yes. But even from parent pom, only mvn install or higher works, anything
lower than install results in an error if the dependency project not in
local repository otherwise if there takes an older version existing in local
repository or remote.

Regards,
Amit

On Fri, Mar 21, 2008 at 7:56 PM, Brian E. Fox [EMAIL PROTECTED]
wrote:

 What you are asking for doesn't exist, but is covered by some proposals:

 http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
 http://jira.codehaus.org/browse/MNG-2576
 http://jira.codehaus.org/browse/MNG-1694

 The reordering only happens when you build from a parent pom that
 aggregates all your children. Otherwise, currently, you need to have the
 dependencies installed in your repository.

 --Brian

 -Original Message-
 From: amit kumar [mailto:[EMAIL PROTECTED]
 Sent: Friday, March 21, 2008 9:32 AM
 To: Maven Users List
 Subject: Re: Customizing Build order

 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:
  moduleA/module
  moduleB/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]




RE: Customizing Build order

2008-03-22 Thread Brian E. Fox
Not entirely true. If you do compile it will get a handle to the classes
in the dependencies target folder. Package will get a handle to the jar
in the target folder. 

The problem is sometimes this isn't enough for a plugin to do what it
needs. So yes you really should just do install in a multimodule build
and it will work.

-Original Message-
From: amit kumar [mailto:[EMAIL PROTECTED] 
Sent: Saturday, March 22, 2008 4:22 AM
To: Maven Users List
Subject: Re: Customizing Build order

Yes. But even from parent pom, only mvn install or higher works,
anything
lower than install results in an error if the dependency project not in
local repository otherwise if there takes an older version existing in
local
repository or remote.

Regards,
Amit

On Fri, Mar 21, 2008 at 7:56 PM, Brian E. Fox [EMAIL PROTECTED]
wrote:

 What you are asking for doesn't exist, but is covered by some
proposals:

 http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
 http://jira.codehaus.org/browse/MNG-2576
 http://jira.codehaus.org/browse/MNG-1694

 The reordering only happens when you build from a parent pom that
 aggregates all your children. Otherwise, currently, you need to have
the
 dependencies installed in your repository.

 --Brian

 -Original Message-
 From: amit kumar [mailto:[EMAIL PROTECTED]
 Sent: Friday, March 21, 2008 9:32 AM
 To: Maven Users List
 Subject: Re: Customizing Build order

 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:
  moduleA/module
  moduleB/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]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Customizing Build order

2008-03-21 Thread amit kumar
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:
 moduleA/module
 moduleB/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]




Re: Customizing Build order

2008-03-21 Thread Joshua ChaitinPollak

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:
moduleA/module
moduleB/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]




--
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970








Re: Customizing Build order

2008-03-21 Thread [EMAIL PROTECTED]
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:
 moduleA/module
 moduleB/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]



Re: Customizing Build order

2008-03-21 Thread [EMAIL PROTECTED]
And rip out the module functionality from poms too. Instead, have
maven support module.xml files which contain a list of module
definitions and nothing else. Then the confusion over parent-poms vs
poms that just happen to be in the parent directory would go away too.

[EMAIL PROTECTED] schrieb:
 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:
 moduleA/module
 moduleB/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]


   


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Customizing Build order

2008-03-21 Thread Joshua ChaitinPollak
The problem still exists. If you had a modules.xml, you're still  
supporting building multiple projects at once. As long as you support  
building multiple projects at once, you have two options:


1) Support all the possible intricacies of inter-phase dependencies
2) ONLY accept 'install' and higher a possible phases.

The reason uber poms are helpful to our project is that we have code  
that needs to be logically separate from each other, but the same  
developers work on both modules. working in a 'constantly install'  
development paradigm is painful, although I do appreciate the nicety  
of not having relative paths, and we have some projects that are  
separate enough from out central product that we don't have one uber  
pom.


The server, server-integration-tests setup I described below is a good  
example. Its confusing for developers to have to install the server,  
just to run their integration test. I want them to code their new  
server code, code their unit test, and code their integration test,  
without having to worry about which version of the snapshot of the  
server jar is currently in their local repository, or if they forgot  
to install it in the local repository, are they using yesterdays  
continuous integration build from the share repository?


That sort of confusion is exactly why I get a lot of the same feedback  
Jason was referring to in the other thread, although I haven't gotten  
negative feedback in a review because if it. If I did, I'd drop maven  
like a hot potato. On that note, I've learned development  
infrastructure technology change never wins you friends or gets you  
fame. You might be able to prove people are wasting 1/4 of their time  
with ant for example, but you'll never recover from the agony of a  
year long migration to something better (maven).


-Josh

On Mar 21, 2008, at 10:39 AM, [EMAIL PROTECTED] wrote:


And rip out the module functionality from poms too. Instead, have
maven support module.xml files which contain a list of module
definitions and nothing else. Then the confusion over parent-poms vs
poms that just happen to be in the parent directory would go away too.

[EMAIL PROTECTED] schrieb:

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


Re: Customizing Build order

2008-03-21 Thread Jason van Zyl


On 21-Mar-08, at 7:39 AM, [EMAIL PROTECTED] wrote:


And rip out the module functionality from poms too. Instead, have
maven support module.xml files which contain a list of module
definitions and nothing else. Then the confusion over parent-poms vs
poms that just happen to be in the parent directory would go away too.



I don't see splitting out a module.xml file as overly helpful. No  
doubt some clarification is necessary on how dependencies, modules and  
parent POM references work but I still think there is enormous value  
in having it all in one place.



[EMAIL PROTECTED] schrieb:

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:
moduleA/module
moduleB/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]






-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Thanks,

Jason

--
Jason van Zyl
Founder,  Apache Maven

RE: Customizing Build order

2008-03-21 Thread Brian E. Fox
What you are asking for doesn't exist, but is covered by some proposals:

http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
http://jira.codehaus.org/browse/MNG-2576
http://jira.codehaus.org/browse/MNG-1694

The reordering only happens when you build from a parent pom that
aggregates all your children. Otherwise, currently, you need to have the
dependencies installed in your repository.

--Brian

-Original Message-
From: amit kumar [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 21, 2008 9:32 AM
To: Maven Users List
Subject: Re: Customizing Build order

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:
 moduleA/module
 moduleB/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]



Re: Customizing Build order

2008-03-18 Thread Graham Leggett

amit kumar wrote:


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.


This looks suspiciously like a circular dependency?

If so, circular dependencies are broken regardless of your build tool.

Regards,
Graham
--


smime.p7s
Description: S/MIME Cryptographic Signature


Re: Customizing Build order

2008-03-18 Thread [EMAIL PROTECTED]
amit kumar schrieb:
 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:
 moduleA/module
 moduleB/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?
   

Man, that is a seriously weird and twisted requirement.

I know of no way to get maven to do this, and see no reason why such a
feature should exist in maven.

It looks to me like you should fix whatever problem exists in your
source code that requires this weird build setup rather than distorting
your build system to handle it.

Regards, Simon


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Customizing Build order

2008-03-18 Thread David Delbecq
En l'instant précis du 18/03/08 09:42, amit kumar s'exprimait en ces 
termes:

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:
moduleA/module
moduleB/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

  
In the A3 project, add dependencies that point to all other projects you 
need to have compiled before (i suspect you need B2 resources for A3?), 
maven should order them properly.


--
David Delbecq
Institut Royal Météorologique
Ext:557


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Customizing Build order

2008-03-18 Thread amit kumar
Oh Okay. Yes simon you are right.

Thanks for the advise.

Regards,
Amit

On Tue, Mar 18, 2008 at 3:46 PM, David Delbecq [EMAIL PROTECTED] wrote:

 En l'instant précis du 18/03/08 09:42, amit kumar s'exprimait en ces
 termes:
  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:
  moduleA/module
  moduleB/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
 
 
 In the A3 project, add dependencies that point to all other projects you
 need to have compiled before (i suspect you need B2 resources for A3?),
 maven should order them properly.

 --
 David Delbecq
 Institut Royal Météorologique
 Ext:557


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




RE: Customizing Build order

2008-03-18 Thread Brian E. Fox
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:
moduleA/module
moduleB/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]



Re: Customizing Build order

2008-03-18 Thread Chris Custine
I've never tried this exact scenario, but couldn't you also do this in the
root pom and remove A3 and B4 from the A and B poms respectively?

moduleA/module
moduleB/module
moduleA/A3/module
moduleB/B4/module

Of course this assumes that previous modules don't depend on A3 or B4.

Chris

On Tue, Mar 18, 2008 at 7:19 PM, 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:
 moduleA/module
 moduleB/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]