You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by "Pimentel, Robert" <Ro...@tgslc.org> on 2012/05/25 22:47:28 UTC

Plugin to determine release order for multiple projects

Hello,

We currently have about 40 different multi-module projects. To date, we have determined an appropriate release order for the projects by manually parsing the POM files and making note of the dependencies. We keep our list in a spreadsheet, and it is re-evaluated with every release because (a) new projects are added (b) the list of projects being released changes from one release to the next (c) the project interdependencies change. As you can imagine this is both tedious and time-consuming. Do you know of a plugin, or any (preferably free) third-party tools that can parse a collection of project POMs and produce an appropriate release order? Additionally, it would be great if the product could check for circular dependencies. I am at the point where I am going to create something myself, but would prefer not to if something like this already exists.
Windows Server 2003 SP2
Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
Java version: 1.6.0_24

Thanks,
Rob

RE: Plugin to determine release order for multiple projects

Posted by "Pimentel, Robert" <Ro...@tgslc.org>.
Thanks Wayne. I looked at it shortly after you sent the e-mail, but it did not appear to offer what I needed.

-----Original Message-----
From: Wayne Fay [mailto:waynefay@gmail.com] 
Sent: Friday, May 25, 2012 10:22 PM
To: Maven Users List
Subject: Re: Plugin to determine release order for multiple projects

> imagine this is both tedious and time-consuming. Do you know of a 
> plugin, or any (preferably free) third-party tools that can parse a 
> collection of project POMs and produce an appropriate release order? 
> Additionally, it

I don't know if this would be too helpful for you, but maybe check out the plan-maven-plugin as introduced by Carlo Sciolla earlier this
month:

[ANN] plan-maven-plugin v1.1 released
Wed, May 9, 2012 at 3:25 AM
To: Maven Users List <us...@maven.apache.org>

Source code <https://github.com/skuro/plan-maven-plugin>
documentation <http://plan-maven-plugin.skuro.tk/>

Wayne

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Plugin to determine release order for multiple projects

Posted by Wayne Fay <wa...@gmail.com>.
> imagine this is both tedious and time-consuming. Do you know of a plugin, or
> any (preferably free) third-party tools that can parse a collection of
> project POMs and produce an appropriate release order? Additionally, it

I don't know if this would be too helpful for you, but maybe check out
the plan-maven-plugin as introduced by Carlo Sciolla earlier this
month:

[ANN] plan-maven-plugin v1.1 released
Wed, May 9, 2012 at 3:25 AM
To: Maven Users List <us...@maven.apache.org>

Source code <https://github.com/skuro/plan-maven-plugin>
documentation <http://plan-maven-plugin.skuro.tk/>

Wayne

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: Plugin to determine release order for multiple projects

Posted by "Pimentel, Robert" <Ro...@tgslc.org>.
This is the type of thing I've been hoping for. We are still in the same boat so to speak. Has your Legal department allowed you to release this?

Thanks,
Rob

-----Original Message-----
From: Ansgar Konermann [mailto:ansgar.konermann@googlemail.com] 
Sent: Friday, May 25, 2012 4:14 PM
To: users@maven.apache.org
Subject: Re: Plugin to determine release order for multiple projects

Hi there.

We've been doing without multimodules for some time now, so we ended up with a number of standalone Maven modules and faced a very similar problem as you do now. We thus created a prototype of a Maven plugin which extracts the project interdependencies from the POMs which are deployed in our Maven repository. It starts with a POM listing all of our final artifacts as dependencies and traverses the dependency trees of all of them to find those projects which are under our control (filtering by groupId prefix).

It currently generates a DOT file to display project dependencies, and a groovy snippet (also representing the  module dependencies). We then paste the groovy snippet into a generic release.groovy script. The script is capable of releasing any module which was modified (we specify which modules are modified) and will re-build and release all those depending on modified modules, by calling Maven with the appropriate release plugin goals.

We plan to make this open source in the next few months, but as it was created during working hours, our legal department is still working something out so that publishing is okay for both my employer and the OSS community.

I know this probably was a rather terse description of the concept. If you have further questions, feel free to ask.

Best regards

Ansgar


Am 25.05.2012 22:50, schrieb Thiessen, Todd (Todd):
> Can't you just look at the reactor order?  That will tell you which projects you would have to release first.
>
>> -----Original Message-----
>> From: Pimentel, Robert [mailto:Robert.Pimentel@tgslc.org]
>> Sent: Friday, May 25, 2012 4:47 PM
>> To: 'users@maven.apache.org'
>> Subject: Plugin to determine release order for multiple projects
>>
>> Hello,
>>
>> We currently have about 40 different multi-module projects. To date, 
>> we have determined an appropriate release order for the projects by 
>> manually parsing the POM files and making note of the dependencies. 
>> We keep our list in a spreadsheet, and it is re-evaluated with every 
>> release because (a) new projects are added (b) the list of projects 
>> being released changes from one release to the next (c) the project 
>> interdependencies change. As you can imagine this is both tedious and 
>> time-consuming. Do you know of a plugin, or any (preferably free) 
>> third-party tools that can parse a collection of project POMs and 
>> produce an appropriate release order? Additionally, it would be great 
>> if the product could check for circular dependencies. I am at the 
>> point where I am going to create something myself, but would prefer 
>> not to if something like this already exists.
>> Windows Server 2003 SP2
>> Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500) Java version: 
>> 1.6.0_24
>>
>> Thanks,
>> Rob
> ---------------------------------------------------------------------
> 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


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Plugin to determine release order for multiple projects

Posted by Ansgar Konermann <an...@googlemail.com>.
Hi there.

We've been doing without multimodules for some time now, so we ended up
with a number of standalone Maven modules and faced a very similar
problem as you do now. We thus created a prototype of a Maven plugin
which extracts the project interdependencies from the POMs which are
deployed in our Maven repository. It starts with a POM listing all of
our final artifacts as dependencies and traverses the dependency trees
of all of them to find those projects which are under our control
(filtering by groupId prefix).

It currently generates a DOT file to display project dependencies, and a
groovy snippet (also representing the  module dependencies). We then
paste the groovy snippet into a generic release.groovy script. The
script is capable of releasing any module which was modified (we specify
which modules are modified) and will re-build and release all those
depending on modified modules, by calling Maven with the appropriate
release plugin goals.

We plan to make this open source in the next few months, but as it was
created during working hours, our legal department is still working
something out so that publishing is okay for both my employer and the
OSS community.

I know this probably was a rather terse description of the concept. If
you have further questions, feel free to ask.

Best regards

Ansgar


Am 25.05.2012 22:50, schrieb Thiessen, Todd (Todd):
> Can't you just look at the reactor order?  That will tell you which projects you would have to release first.
>
>> -----Original Message-----
>> From: Pimentel, Robert [mailto:Robert.Pimentel@tgslc.org]
>> Sent: Friday, May 25, 2012 4:47 PM
>> To: 'users@maven.apache.org'
>> Subject: Plugin to determine release order for multiple projects
>>
>> Hello,
>>
>> We currently have about 40 different multi-module projects. To date, we
>> have determined an appropriate release order for the projects by
>> manually parsing the POM files and making note of the dependencies. We
>> keep our list in a spreadsheet, and it is re-evaluated with every
>> release because (a) new projects are added (b) the list of projects
>> being released changes from one release to the next (c) the project
>> interdependencies change. As you can imagine this is both tedious and
>> time-consuming. Do you know of a plugin, or any (preferably free)
>> third-party tools that can parse a collection of project POMs and
>> produce an appropriate release order? Additionally, it would be great
>> if the product could check for circular dependencies. I am at the point
>> where I am going to create something myself, but would prefer not to if
>> something like this already exists.
>> Windows Server 2003 SP2
>> Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
>> Java version: 1.6.0_24
>>
>> Thanks,
>> Rob
> ---------------------------------------------------------------------
> 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


RE: Plugin to determine release order for multiple projects

Posted by "Pimentel, Robert" <Ro...@tgslc.org>.
Non. There is no circular dependency in this situation. Project A has a dependency on Project B, which has a dependency on Project C. I am sorry if that was unclear in my message.

Thanks,
Rob

-----Original Message-----
From: bmathus@gmail.com [mailto:bmathus@gmail.com] On Behalf Of Baptiste MATHUS
Sent: Wednesday, January 30, 2013 10:18 AM
To: Maven Users List
Subject: RE: Plugin to determine release order for multiple projects

Hi,

I understand you have two different multimodules projects.
But those projects have actually dependencies with each other. In short, "circular".

If so, it won't work with Maven.
The "Maven way" here is: if those projects actually have modules that are so intricate, then you somehow have the same lifecycle: those two projects should be in the same one.

Cheers
Le 30 janv. 2013 17:06, "Pimentel, Robert" <Ro...@tgslc.org> a écrit :

> When I run mvn clean, and look at the reactor order, it lists the 
> build order for the modules in that particular project. That list does 
> not include other projects for which the target project is dependent upon.
>
> For example:
>
> Project A
> ---> module A
> ---> module B
> ---> module C
>
> Project B
> ---> module A
> ---> module B
>
>
> Module A of project A has a dependency on module B of Project B. When 
> I ran mvn clean at the top level or project A, it lists the build order (e.g.
> module B, C, A of project A), but there is no mention of module B in 
> Project B. Also, module B of project B may have a dependency on module 
> A of a different (project C). The goal is to have an ordered list of 
> the projects to be released. In this example Project C, then Project 
> B, and then Project A. The reactor does not seem to provide that functionality.
> Maybe I am missing something.
>
> Thanks,
> Rob
>
> -----Original Message-----
> From: Thiessen, Todd (Todd) [mailto:tthiessen@avaya.com]
> Sent: Friday, May 25, 2012 3:51 PM
> To: Maven Users List
> Subject: RE: Plugin to determine release order for multiple projects
>
> Can't you just look at the reactor order?  That will tell you which 
> projects you would have to release first.
>
> > -----Original Message-----
> > From: Pimentel, Robert [mailto:Robert.Pimentel@tgslc.org]
> > Sent: Friday, May 25, 2012 4:47 PM
> > To: 'users@maven.apache.org'
> > Subject: Plugin to determine release order for multiple projects
> >
> > Hello,
> >
> > We currently have about 40 different multi-module projects. To date, 
> > we have determined an appropriate release order for the projects by 
> > manually parsing the POM files and making note of the dependencies. 
> > We keep our list in a spreadsheet, and it is re-evaluated with every 
> > release because (a) new projects are added (b) the list of projects 
> > being released changes from one release to the next (c) the project 
> > interdependencies change. As you can imagine this is both tedious 
> > and time-consuming. Do you know of a plugin, or any (preferably 
> > free) third-party tools that can parse a collection of project POMs 
> > and produce an appropriate release order? Additionally, it would be 
> > great if the product could check for circular dependencies. I am at 
> > the point where I am going to create something myself, but would 
> > prefer not to if something like this already exists.
> > Windows Server 2003 SP2
> > Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500) Java version:
> > 1.6.0_24
> >
> > Thanks,
> > Rob
>
> ---------------------------------------------------------------------
> 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
>
>

RE: Plugin to determine release order for multiple projects

Posted by Baptiste MATHUS <ml...@batmat.net>.
Hi,

I understand you have two different multimodules projects.
But those projects have actually dependencies with each other. In short,
"circular".

If so, it won't work with Maven.
The "Maven way" here is: if those projects actually have modules that are
so intricate, then you somehow have the same lifecycle: those two projects
should be in the same one.

Cheers
Le 30 janv. 2013 17:06, "Pimentel, Robert" <Ro...@tgslc.org> a
écrit :

> When I run mvn clean, and look at the reactor order, it lists the build
> order for the modules in that particular project. That list does not
> include other projects for which the target project is dependent upon.
>
> For example:
>
> Project A
> ---> module A
> ---> module B
> ---> module C
>
> Project B
> ---> module A
> ---> module B
>
>
> Module A of project A has a dependency on module B of Project B. When I
> ran mvn clean at the top level or project A, it lists the build order (e.g.
> module B, C, A of project A), but there is no mention of module B in
> Project B. Also, module B of project B may have a dependency on module A of
> a different (project C). The goal is to have an ordered list of the
> projects to be released. In this example Project C, then Project B, and
> then Project A. The reactor does not seem to provide that functionality.
> Maybe I am missing something.
>
> Thanks,
> Rob
>
> -----Original Message-----
> From: Thiessen, Todd (Todd) [mailto:tthiessen@avaya.com]
> Sent: Friday, May 25, 2012 3:51 PM
> To: Maven Users List
> Subject: RE: Plugin to determine release order for multiple projects
>
> Can't you just look at the reactor order?  That will tell you which
> projects you would have to release first.
>
> > -----Original Message-----
> > From: Pimentel, Robert [mailto:Robert.Pimentel@tgslc.org]
> > Sent: Friday, May 25, 2012 4:47 PM
> > To: 'users@maven.apache.org'
> > Subject: Plugin to determine release order for multiple projects
> >
> > Hello,
> >
> > We currently have about 40 different multi-module projects. To date,
> > we have determined an appropriate release order for the projects by
> > manually parsing the POM files and making note of the dependencies. We
> > keep our list in a spreadsheet, and it is re-evaluated with every
> > release because (a) new projects are added (b) the list of projects
> > being released changes from one release to the next (c) the project
> > interdependencies change. As you can imagine this is both tedious and
> > time-consuming. Do you know of a plugin, or any (preferably free)
> > third-party tools that can parse a collection of project POMs and
> > produce an appropriate release order? Additionally, it would be great
> > if the product could check for circular dependencies. I am at the
> > point where I am going to create something myself, but would prefer
> > not to if something like this already exists.
> > Windows Server 2003 SP2
> > Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500) Java version:
> > 1.6.0_24
> >
> > Thanks,
> > Rob
>
> ---------------------------------------------------------------------
> 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
>
>

RE: Plugin to determine release order for multiple projects

Posted by "Pimentel, Robert" <Ro...@tgslc.org>.
When I run mvn clean, and look at the reactor order, it lists the build order for the modules in that particular project. That list does not include other projects for which the target project is dependent upon.

For example:

Project A
---> module A
---> module B
---> module C

Project B
---> module A
---> module B


Module A of project A has a dependency on module B of Project B. When I ran mvn clean at the top level or project A, it lists the build order (e.g. module B, C, A of project A), but there is no mention of module B in Project B. Also, module B of project B may have a dependency on module A of a different (project C). The goal is to have an ordered list of the projects to be released. In this example Project C, then Project B, and then Project A. The reactor does not seem to provide that functionality. Maybe I am missing something.

Thanks,
Rob

-----Original Message-----
From: Thiessen, Todd (Todd) [mailto:tthiessen@avaya.com] 
Sent: Friday, May 25, 2012 3:51 PM
To: Maven Users List
Subject: RE: Plugin to determine release order for multiple projects

Can't you just look at the reactor order?  That will tell you which projects you would have to release first.

> -----Original Message-----
> From: Pimentel, Robert [mailto:Robert.Pimentel@tgslc.org]
> Sent: Friday, May 25, 2012 4:47 PM
> To: 'users@maven.apache.org'
> Subject: Plugin to determine release order for multiple projects
> 
> Hello,
> 
> We currently have about 40 different multi-module projects. To date, 
> we have determined an appropriate release order for the projects by 
> manually parsing the POM files and making note of the dependencies. We 
> keep our list in a spreadsheet, and it is re-evaluated with every 
> release because (a) new projects are added (b) the list of projects 
> being released changes from one release to the next (c) the project 
> interdependencies change. As you can imagine this is both tedious and 
> time-consuming. Do you know of a plugin, or any (preferably free) 
> third-party tools that can parse a collection of project POMs and 
> produce an appropriate release order? Additionally, it would be great 
> if the product could check for circular dependencies. I am at the 
> point where I am going to create something myself, but would prefer 
> not to if something like this already exists.
> Windows Server 2003 SP2
> Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500) Java version: 
> 1.6.0_24
> 
> Thanks,
> Rob

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


RE: Plugin to determine release order for multiple projects

Posted by "Thiessen, Todd (Todd)" <tt...@avaya.com>.
Can't you just look at the reactor order?  That will tell you which projects you would have to release first.

> -----Original Message-----
> From: Pimentel, Robert [mailto:Robert.Pimentel@tgslc.org]
> Sent: Friday, May 25, 2012 4:47 PM
> To: 'users@maven.apache.org'
> Subject: Plugin to determine release order for multiple projects
> 
> Hello,
> 
> We currently have about 40 different multi-module projects. To date, we
> have determined an appropriate release order for the projects by
> manually parsing the POM files and making note of the dependencies. We
> keep our list in a spreadsheet, and it is re-evaluated with every
> release because (a) new projects are added (b) the list of projects
> being released changes from one release to the next (c) the project
> interdependencies change. As you can imagine this is both tedious and
> time-consuming. Do you know of a plugin, or any (preferably free)
> third-party tools that can parse a collection of project POMs and
> produce an appropriate release order? Additionally, it would be great
> if the product could check for circular dependencies. I am at the point
> where I am going to create something myself, but would prefer not to if
> something like this already exists.
> Windows Server 2003 SP2
> Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
> Java version: 1.6.0_24
> 
> Thanks,
> Rob

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org