Hi there,
I've got a strange problem with the versioning of snapshot artifacts which
seems to be affected by the version of POM declared as the project's parent.
Hopefully the following example will explain what's happening.
I have a base-POM called, say, com.somewhere.apple:apple-pom:10.0-SNAPSHOT,
which declares the version of all the projects in the build in a
dependency-management section. So I might declare the version of a project to
be used in the build (and which will be built as part of the build-cycle) as:
com.somewhere.apple:platform-logging:10.0-SNAPSHOT
Nothing too controvertial so far, hopefully.
The weirdness arises as follows. I have a hierarchy of POMs which are mostly
declared as 10.0-SNAPSHOT:
com.somewhere.apple:deps-pom:10.0-SNAPSHOT <-- dependency-management POM
\
\ (inherits above)
\
com.somewhere.apple:apple-pom:10.0-SNAPSHOT <-- simple multi-module POM
\
\ (inherits above)
\
com.somewhere.banana:banana-pom:1.0-SNAPSHOT <-- POM: note version
|\
| \ (inherits above)
| \
| com.somewhere.banana:banana-api:1.0-SNAPSHOT <-- note version
|
+-com.somewhere.banana:banana-api-impl:1.0-SNAPSHOT <-- note version
In the root "deps-pom" I have a project called platform-logging, and both its
dependency-management version and build-version are declared as 10.0-SNAPSHOT,
ie: anything depending on it should use 10.0-SNAPSHOT, and the version being
built is 10.0-SNAPSHOT.
However, in the the banana-api project, this fails to pick-up the dependency
declared in deps-pom (10.0-SNAPSHOT) and instead tries to rely on 1.0-SNAPSHOT.
Why does this happen? Why is it substituting its (SNAPSHOT) version for the
version declared in deps-pom?
I've hacked a fix to this by explicitly putting in the version in the
dependency section of banana-api.
More weirdness though: the project banana-api-impl (also inherits
com.somewhere.banana:banana-pom:1.0-SNAPSHOT) depends on banana-api. Despite
the explicit version stipulated in banana-api, banana-api-impl tries to rely on
1.0-SNAPSHOT, not 10.0-SNAPSHOT (as you might expect). I suspect this is
another manifestation of the same problem, and fix the original problem and
this will go too. However I would have thought that the transitive dependency
mechanism would have used the version declared in banana-api.
I'm sorry if this is horribly impenetrable, but we're at a loss to see why the
banana-* projects fail to use the correct dependency version. Indeed, a run of
help:effective-pom shows that it substitutes its version (1.0) for all other
child projects of apple-pom (which are at 10.0). Go up a directory to
apple-pom, run help:effective-pom and all is well.
Please help!
Cheers
Mike
________________________________________________________________________
In order to protect our email recipients, Betfair Group use SkyScan from
MessageLabs to scan all Incoming and Outgoing mail for viruses.
________________________________________________________________________
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]