Hi all,

I'm reposting this as it *seems* to have got stuck in the bowels of
Nabble, so apologies to anyone who gets a double post!

I've got an interesting problem with branches and version ranges.
We've got a fairly typical git based workflow, where we create new
branches for feature development. We use Jenkins to perform CI builds,
and have got this configured to automatically create a new build job
when a branch is created.

We use Nexus to store dependencies, versioned, for each build.

A typical project my have a group of "co.globaldawn", and a name like
"classifications-lib". Version numbers are of the format
"1.${buildNumber}-${branchName}", where build number is the number of
builds that have been conducted in that branch.

So if the "classifications-lib" project is at version 1.333 and is
branched to "feature1234", we end up with an artifact like:
"classifications-lib-1.0-feature1234". The dependency declaration for
this is "co.globaldawn:classifications-lib:1.0-feature1234"

So far, not too bad...

We also use version ranges in some of our dependencies. This doesn't
work, because Ivy basically ignores the "-feature1234" part of the
version range.

A version range like this: "com.globaldawn.common:misc:[1.9.0-local,
2.1.0-local)" will match anything with is alphabetically less than
"2.1.0-local" - so "1.99-master" will be a valid resolution.

Is there a way of applying a branch constraint on a dependency?

If not, I think my only option will be to use the branch in the
artifact name: "com.globaldawn.common-feature1244"

thoughts appreciated!

Phil.

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to