How can I recursively build -SNAPSHOT dependencies present in the filesystem but outside the reactor?

2012-06-15 Thread Chris Beach
I have two projects as follows, in neighbouring directories on the filesystem:

* project_a (-SNAPSHOT)
* project_b (-SNAPSHOT, depends on project_a)

I'd like to build project_b and for Maven to discover that project_a exists on 
the filesystem and thus build it rather than look in the local repo for its 
artifact.

I could build these within an aggregator and use the reactor to select 
project_b i.e.

mvn --projects project_b [goal]

However, this is problematic because

* this two-project example is a simplification of my real build, which consists 
of dozens of projects, and I don't want to have to maintain an aggregator 
project that lists all of them.
* I only want to recursively build -SNAPSHOT dependencies

Is there a neat way I could get Maven to perform a recursive build that looks 
on the filesystem to find -SNAPSHOT dependency projects and builds them?
I'm familiar with Maven plugin development, but haven't yet found any clues 
toward a solution in the Maven / Aether documentation.

Chris Beach

This email and any attachments contain CONFIDENTIAL information which may be 
legally privileged. If this 
communication constitutes a financial promotion, it is directed only at persons 
who are professional clients or 
eligible counterparties (as defined under the FSA rules).  The information, 
which is provided on a non-reliance 
basis, may be subject to verification or amendment.  No representation or 
warranty is made as to its accuracy or 
completeness. Unless expressly stated otherwise, this email is neither an offer 
to sell nor a solicitation of any 
offer to buy an interest in any fund or other investment vehicle sponsored or 
managed by Aspect Capital Limited 
(Aspect Funds). Any such offer or solicitation would be made only by way of the 
final offering documents of such 
Aspect Fund (which should be considered carefully before any investment 
decision is made) and only in such 
jurisdictions where, and to such persons to whom, it would be lawful to do so. 
Past performance is not necessarily 
indicative of future returns. Email transmission cannot be guaranteed to be 
secure or error free.  Subject to 
applicable law, Aspect (or its service providers) may intercept, monitor, 
review and retain e-communications 
travelling through its networks/systems. By messaging with Aspect you consent 
to the foregoing.  Aspect Capital 
Limited is authorised and regulated by the Financial Services Authority and is 
a company registered in England and Wales 
under registered no. 3491169. Its registered office is at Nations House, 103 
Wigmore Street, London W1U 1QS. ASPECT, 
ASPECT CAPITAL, the ASPECT CAPITAL device and ASPECT CAPITAL:THE SCIENCE OF 
INVESTMENT are registered trademarks of 
Aspect Capital Limited. © Aspect Capital Limited 2012. All rights reserved. For 
more information, go to www.aspectcapital.com.

Re: How can I recursively build -SNAPSHOT dependencies present in the filesystem but outside the reactor?

2012-06-15 Thread Ron Wheeler

On 15/06/2012 4:43 AM, Chris Beach wrote:

I have two projects as follows, in neighbouring directories on the filesystem:

* project_a (-SNAPSHOT)
* project_b (-SNAPSHOT, depends on project_a)

I'd like to build project_b and for Maven to discover that project_a exists on 
the filesystem and thus build it rather than look in the local repo for its 
artifact.

Why.?
This means that:
- you are stuck as a 1 man shop,
- you need to keep all of your projects active at once
- you will have trouble figuring out what is finished.

The Best Practice is to:
- have a Maven repo - Nexus or another, where Maven looks for its artifacts,
- have a SCM - Subversion or some other, where you keep source code with 
proper source version control
- have an IDE - Eclipse STS or some other, where you checkout code from 
your SCM, produce artifacts that are tested and then deployed to your 
repo, checkin your code to your SCM and ,if you are finished with that 
module, deleted from your IDE or at least closed.
- declare your dependencies in your POMs and if you need aggregation 
POMs to group utilities or core functions, do that. This is a one-time 
investment in productivity enhancement that makes life better.


We have roughly 70 modules making webapps, web services and batch jobs 
and 10 libraries that group third party and internal utilities for us.
We use Eclipse STS, Maven, Subversion and Nexus and the environment is 
very easy to use, well organized and controlled.


If you don't want to do it right, Eclipse STS will allow you to 
resolve Maven artifacts from your workspace and do roughly what you seem 
to want.


Ron



I could build these within an aggregator and use the reactor to select 
project_b i.e.

mvn --projects project_b [goal]

However, this is problematic because

* this two-project example is a simplification of my real build, which consists 
of dozens of projects, and I don't want to have to maintain an aggregator 
project that lists all of them.
* I only want to recursively build -SNAPSHOT dependencies

Is there a neat way I could get Maven to perform a recursive build that looks 
on the filesystem to find -SNAPSHOT dependency projects and builds them?
I'm familiar with Maven plugin development, but haven't yet found any clues 
toward a solution in the Maven / Aether documentation.

Chris Beach

This email and any attachments contain CONFIDENTIAL information which may be 
legally privileged. If this
communication constitutes a financial promotion, it is directed only at persons 
who are professional clients or
eligible counterparties (as defined under the FSA rules).  The information, 
which is provided on a non-reliance
basis, may be subject to verification or amendment.  No representation or 
warranty is made as to its accuracy or
completeness. Unless expressly stated otherwise, this email is neither an offer 
to sell nor a solicitation of any
offer to buy an interest in any fund or other investment vehicle sponsored or 
managed by Aspect Capital Limited
(Aspect Funds). Any such offer or solicitation would be made only by way of the 
final offering documents of such
Aspect Fund (which should be considered carefully before any investment 
decision is made) and only in such
jurisdictions where, and to such persons to whom, it would be lawful to do so. 
Past performance is not necessarily
indicative of future returns. Email transmission cannot be guaranteed to be 
secure or error free.  Subject to
applicable law, Aspect (or its service providers) may intercept, monitor, 
review and retain e-communications
travelling through its networks/systems. By messaging with Aspect you consent 
to the foregoing.  Aspect Capital
Limited is authorised and regulated by the Financial Services Authority and is 
a company registered in England and Wales
under registered no. 3491169. Its registered office is at Nations House, 103 
Wigmore Street, London W1U 1QS. ASPECT,
ASPECT CAPITAL, the ASPECT CAPITAL device and ASPECT CAPITAL:THE SCIENCE OF 
INVESTMENT are registered trademarks of
Aspect Capital Limited. © Aspect Capital Limited 2012. All rights reserved. For 
more information, go to www.aspectcapital.com.



--
Ron Wheeler
President
Artifact Software Inc
email: rwhee...@artifact-software.com
skype: ronaldmwheeler
phone: 866-970-2435, ext 102


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



Re: How can I recursively build -SNAPSHOT dependencies present in the filesystem but outside the reactor?

2012-06-15 Thread Thorsten Heit
Hi Chris,

 Is there a neat way I could get Maven to perform a recursive build 
 that looks on the filesystem to find -SNAPSHOT dependency projects 
 and builds them?
 I'm familiar with Maven plugin development, but haven't yet found 
 any clues toward a solution in the Maven / Aether documentation.

I'd suggest you use a CI system such as Jenkins for that purpose:

Jenkins parses the pom.xml files on Maven projects and automatically 
detects dependencies between jobs. If you start a certain job, Jenkins 
automatically triggers builds on all dependent subjobs, quite similar to 
what you want to achieve.

I'd recommend to install the Upstream Downstream Column Plugin that adds 
two quite useful columns to Jenkins' job list: one that lists all parent 
jobs, and another with all subjobs as far as Jenkins has detected them.


HTH

Thorsten

Re: How can I recursively build -SNAPSHOT dependencies present in the filesystem but outside the reactor?

2012-06-15 Thread Patrick

On Jun 15, 2012, at 7:58 AM, Thorsten Heit wrote:

 Hi Chris,
 
 Is there a neat way I could get Maven to perform a recursive build 
 that looks on the filesystem to find -SNAPSHOT dependency projects 
 and builds them?
 I'm familiar with Maven plugin development, but haven't yet found 
 any clues toward a solution in the Maven / Aether documentation.
 
 I'd suggest you use a CI system such as Jenkins for that purpose:
 
 Jenkins parses the pom.xml files on Maven projects and automatically 
 detects dependencies between jobs. If you start a certain job, Jenkins 
 automatically triggers builds on all dependent subjobs, quite similar to 
 what you want to achieve.

I believe that there's a checkbox in the project's config you have to check for 
this (auto-rebuilding if a dependency changes) to happen.  You'll also want to 
turn on the option that blocks building the user of the dependencies while the 
dependencies are being built.


Honestly.  I'm the only person working on the projects I was talking about, but 
I love using Jenkins.  It means that after I commit, I find out within 10 
minutes if the commit I made actually works.  Often I find I forgot a file, or 
else I find a test only worked on the computer I wrote it on due to assumptions.

I figure it'll take between 1-2 hours to setup if you have no experience, and 
if so, it'll probably be time well spent.
-
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org



RE: How can I recursively build -SNAPSHOT dependencies present in the filesystem but outside the reactor?

2012-06-15 Thread Chris Beach
Thanks Thorsten and Ron,

Some additional background:

We're a team of about 25 developers, and 100 projects/modules. All developers 
are familiar with the whole suite of apps, and move freely between projects. 
They want to be able to work on several projects locally without taking in 
unwanted -SNAPSHOT changes from our repo (Artifactory).

In our case, developers simply want to build apps together (usually two or 
three together depending on the scope of the development task) to ensure the 
build accurately reflects the code checked out in the developer's workspace. 

We have Jenkins, which builds our projects on SCM commit, and builds 
dependents. This isn't applicable for individual developer workspace builds.

Ron - the burden of checking out the whole workspace isn't a big deal for us, 
and we still peg individual dependencies to release versions as necessary. My 
original question concerned workspace builds where we intend to use limited 
number of -SNAPSHOT dependencies to trigger a  selectively-recursive build 
across multiple projects.

I am currently building a plugin maven-r-plugin which internally uses 
Maven.execute(MavenExecutionResult) and a file-based index of in-house 
artifacts to prototype a solution to this problem. Suggestions of better 
solutions would be welcome.

Thanks,

Chris

This email and any attachments contain CONFIDENTIAL information which may be 
legally privileged. If this 
communication constitutes a financial promotion, it is directed only at persons 
who are professional clients or 
eligible counterparties (as defined under the FSA rules).  The information, 
which is provided on a non-reliance 
basis, may be subject to verification or amendment.  No representation or 
warranty is made as to its accuracy or 
completeness. Unless expressly stated otherwise, this email is neither an offer 
to sell nor a solicitation of any 
offer to buy an interest in any fund or other investment vehicle sponsored or 
managed by Aspect Capital Limited 
(Aspect Funds). Any such offer or solicitation would be made only by way of the 
final offering documents of such 
Aspect Fund (which should be considered carefully before any investment 
decision is made) and only in such 
jurisdictions where, and to such persons to whom, it would be lawful to do so. 
Past performance is not necessarily 
indicative of future returns. Email transmission cannot be guaranteed to be 
secure or error free.  Subject to 
applicable law, Aspect (or its service providers) may intercept, monitor, 
review and retain e-communications 
travelling through its networks/systems. By messaging with Aspect you consent 
to the foregoing.  Aspect Capital 
Limited is authorised and regulated by the Financial Services Authority and is 
a company registered in England and Wales 
under registered no. 3491169. Its registered office is at Nations House, 103 
Wigmore Street, London W1U 1QS. ASPECT, 
ASPECT CAPITAL, the ASPECT CAPITAL device and ASPECT CAPITAL:THE SCIENCE OF 
INVESTMENT are registered trademarks of 
Aspect Capital Limited. © Aspect Capital Limited 2012. All rights reserved. For 
more information, go to www.aspectcapital.com.

[ANN] Maven Release Plugin 2.3.2 Released

2012-06-15 Thread Robert Scholte
The Maven team is pleased to announce the release of the Maven Release  
Plugin, version 2.3.2


This plugin is used to release a project with Maven, saving a lot of  
repetitive, manual work. Releasing a project is made in two steps: prepare  
and perform.


http://maven.apache.org/plugins/maven-release-plugin/

You should specify the version in your project's plugin configuration:

plugin
  groupIdorg.apache.maven.plugins/groupId
  artifactIdmaven-release-plugin/artifactId
  version2.3.2/version
/plugin


Release Notes - Maven 2.x Release Plugin - Version 2.3.2

** Bug
* [MRELEASE-484] - release:rollback fails after branch with NPE and  
complaint about missing scm URL

* [MRELEASE-616] - release:rollback does not honor -DcommitByProject
* [MRELEASE-663] - Null error when project is too close to root
* [MRELEASE-760] - updateWorkingCopyVersions=false still bumps up pom  
versions to next development version

* [MRELEASE-761] - [regression] release:rollback no longer works
* [MRELEASE-765] - Regression in 2.3: release:update-versions doesn't  
work anymore
* [MRELEASE-770] - ScmCheckModificationsPhase doesn't pick up  
ScmTranslator for relative path translation



Enjoy,

-The Maven team

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