I understand that pom file of lib 0.0.1-SNAPSHOT dependency cannot be built because of missing (evicted) parent 0.0.1-SNAPSHOT.
The point is that failing to build lib 0.0.1-SNAPSHOT pom file should not result in a app failed build, as there exists another valid lib 0.0.2-SNAPSHOT (having parent 0.0.2-SNAPSHOT) that abides to the app-to-lib version range. Note that when the relationship between parent and lib is a dependency relationship (instead of a parent relationship, as in the failing case), the build of ‘app’ correctly succeeds, as there exists another valid lib 0.0.2-SNAPSHOT (dependent on parent 0.0.2-SNAPSHOT) in the version range. Christophe -----Original Message----- From: Fred Cooke [mailto:[email protected]] Sent: Donnerstag, 4. August 2016 01:09 To: Maven Developers List <[email protected]> Subject: Re: project having a dependency with a version range fails building when parent pom of dependency is evicted from remote repo I'm surprised the transitive dependency to that parent succeeds, unless it's ranged. For the others, in order to determine the dependency tree, and thus any transitive dependencies, and so on, the entire pom needs to be present. A parent is part of that. If the parent is of a fixed version (all that's currently supported IIRC) and not present, then it should fail otherwise it's going to produce something potentially quite different to what the developer intended (or accidentally indicated that they intended). I'm wondering what SNAPSHOTs are doing in a remote, but I know some people operate that way. I wouldn't/don't. Another thing I wouldn't do is stick dependencies in a parent, period. Or use a snapshot parent, ever. Interested to read what the gurus come back with, though :-) Regards, Fred. On Thu, Aug 4, 2016 at 3:36 AM, Thiebaud, Christophe < [email protected]> wrote: > Hi All, > > > > The title says it all. > > > > Any suggestions how to overcome this issue ? > > > > Explanation below. Let the projects be: > > > > ‘parent’ : the parent pom of the ‘lib’ library just below > > ‘lib’ : the library > > ‘app’ : the application dependent on ‘lib’ through a version range. > > > > (all three minimalistic sample projects here: https://github.com/iroif) > > > > > > Here is what happens during time, when versions are bumped and projects > are deployed to remote repo: > > > > day 0 > > > > ‘parent’ 0.0.1-SNAPSHOT is deployed to remote repo > > ‘lib’ 0.0.1-SNAPSHOT is deployed to remote repo > > ‘app’ builds OK > > > > day 1 > > > > ‘parent’ 0.0.1-SNAPSHOT is still on remote repo > > ‘parent’ 0.0.2-SNAPSHOT is deployed to remote repo > > ‘lib’ 0.0.1-SNAPSHOT is still on remote repo > > ‘app’ builds OK > > > > day 2 > > > > ‘parent’ 0.0.1-SNAPSHOT is still on remote repo > > ‘parent’ 0.0.2-SNAPSHOT is still on remote repo > > ‘lib’ 0.0.1-SNAPSHOT is still on remote repo > > ‘lib’ 0.0.2-SNAPSHOT is deployed to remote repo > > ‘app’ builds OK > > > > day 3 > > > > ‘parent’ 0.0.1-SNAPSHOT is automatically evicted from remote repo by some > rule > > ‘parent’ 0.0.2-SNAPSHOT is still on remote repo > > ‘lib’ 0.0.1-SNAPSHOT is still on remote repo > > ‘lib’ 0.0.2-SNAPSHOT is still on remote repo > > *‘app’ build FAILS* > > > > this is because maven tries to build the pom for ‘lib’ 0.0.1-SNAPSHOT and > fails as ‘parent’ 0.0.1-SNAPSHOT is not available anymore. > > > > However, IMHO, the build of ‘app’ should not fail as there is another > valid dependency resolution : ‘lib’ 0.0.2-SNAPSHOT with ‘parent’ > 0.0.2-SNAPSHOT. > > > > In fact, when the relationship between parent and lib is a dependency (and > not a parent-child relationship), the build of ‘app’ succeeds, even when > transitive dependency to ‘parent’ 0.0.1-SNAPSHOT cannot be resolved. > > > > Note that ‘app’ build is successful again, when on day 4, ‘lib’ > 0.0.1-SNAPSHOT is in turn evicted: > > > > day 4 > > > > ‘parent’ 0.0.2-SNAPSHOT is still on remote repo > > ‘lib’ 0.0.1-SNAPSHOT is automatically evicted from remote repo by some > rule > > ‘lib’ 0.0.2-SNAPSHOT is still on remote repo > > *‘app’ build resumes OK* > > > > Any suggestions how to overcome this issue ? > > > > We have builds failing every other day in our build farm for this reason. > > > > Thanks! > > Christophe > > PS. The content of this mail is duplicated here : > https://github.com/iroif/iroif-parent > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
