On Tue 11 Apr 2017 at 16:02, Curtis Rueden <ctrue...@wisc.edu> wrote:

> Hi Hector,
>
> > This is fine as long as the dependency is always set to x.y.z-Snapshot
> > and the dependency is always overwritten this way.  What if the
> > producer produces x.y.z.1-Snapshot, x.y.z.2-Snapshot, x.y.z.3-Snapshot
> > and I want the dependent build to always get the latest in this case,
> > x.y.z.3-Snapshot ?
>
> There is a special version keyword LATEST which means the very newest
> version, snapshot or otherwise. And RELEASE means the newest release
> (non-SNAPSHOT) version.


Support for those were dropped in Maven 3

*and* anyway they were only for *plugin* versions because the plugin
version does not support ranges.

For dependency versions, define a range

>
>
> Similar to version ranges, Maven will have to ask the remote repository
> about the latest known version in these cases, and will then use that.
>
> I want to emphasize, as others have mentioned, that using any of these
> strategies will result in _irreproducible builds_. That is, your code might
> build today, and then the same code will fail to build in the future,
> because the versions will resolve differently. The only way (I know of) to
> achieve reproducible builds is to use fixed release versions, always.
>
> Regards,
> Curtis
>
> --
> Curtis Rueden
> LOCI software architect - https://loci.wisc.edu/software
> ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
>
>
> On Tue, Apr 11, 2017 at 9:57 AM, Magnanao, Hector <hector.magna...@sap.com
> >
> wrote:
>
> > This is fine as long as the dependency is always set to x.y.z-Snapshot
> and
> > the dependency is always overwritten this way.  What if the producer
> > produces x.y.z.1-Snapshot, x.y.z.2-Snapshot, x.y.z.3-Snapshot and I want
> > the dependent build to always get the latest in this case,
> > x.y.z.3-Snapshot ? The difference with this scenario is that the producer
> > will always have a new build number.
> > As for your solution of using the range,  do I always have to change the
> > pom file in the dependent build whenever a new build is produced by the
> > producer ?
> >
> > -----Original Message-----
> > From: Benson Margulies [mailto:bimargul...@gmail.com]
> > Sent: Monday, April 10, 2017 10:39 AM
> > To: Maven Users List <users@maven.apache.org>
> > Subject: Re: dependency question
> >
> > On Mon, Apr 10, 2017 at 8:18 AM, Magnanao, Hector
> > <hector.magna...@sap.com> wrote:
> > > I'm still a little confused about the answers I'm getting.  So, if
> build
> > A is being updated with a new build number(even for a snapshot), and
> build
> > B has it as a dependency in it's pom.file, how does the pom file in
> Build B
> > need to look like in the dependency section so that it does get the
> latest
> > snapshot build of build A ?
> >
> > This conversation seems to keep mixing up SNAPSHOT version processing
> > with various conventions for using version ranges.
> >
> > If the producer produces x.y.z-SNAPSHOT, and the consumer declares a
> > dependency on x.y.z-SNAPSHOT, every build of the consumer will go out
> > to the repositories to look for the latest snapshot build.
> >
> > Snapshots have risks and do not provide a repeatable build. Then
> > again, neither do ranges.
> >
> > If you don't want to use snapshots, then you write the dependency in
> > the consumer with a range
> >
> >     (1.0-2.0]
> >
> > or whatever makes sense. This will cause builds of the consumer to go
> > out to repositories and try to find the newest version within the
> > range. it's up to you to bump the version in the producer, manually or
> > with the maven-release-plugin.
> >
> >
> >
> >
> > >
> > > Scenario:
> > >
> > > Build A has 3 builds in it with names 1-Snapshot, 2-snapshot,
> 3-snapshot
> > and they are all being uploaded to a repository.
> > >
> > > What will the pom file in build B look like so that the next time build
> > B is executed,  3-snapshot for build A will be picked up ?
> > >
> > > -----Original Message-----
> > > From: Karl Heinz Marbaise [mailto:khmarba...@gmx.de]
> > > Sent: Friday, April 7, 2017 10:50 AM
> > > To: Maven Users List <users@maven.apache.org>
> > > Subject: Re: dependency question
> > >
> > > Hi Russlel,
> > > On 07/04/17 17:29, Russell Gold wrote:
> > >
> > >> That’s the way it works: when you specify a snapshot, it takes the
> > latest.
> > >
> > > This is not 100% true, cause it depends on the update policy you have
> > > defined in your settings either explicit or by default the updates will
> > > be checked every 24 hours...
> > >
> > > If you like to force this you can use mvn -U ...or define a different
> > > updatePolicy in your settings.xml for the appropriate repository.
> > >
> > > By using mvn -U you make sure for running this build Maven will check
> if
> > > there are newer SNAPSHOT version available for dependencies which have
> > > defined a SNAPSHOT version....
> > >
> > > This is working for a single module project...but if you have a multi
> > > module build (Project C: A1 build before A2) which takes for example 5
> > > minutes to build ...this is no longer 100% true...
> > >
> > > Now let us assume you have another project B which dependends on two
> > > different artifacts (A1, A2) of Project C ...this means in consequence
> > > those artifacts are build at two different times...
> > >
> > > This means it could happen that your build of Project B consumes A2
> from
> > > build #10 but A1 from build #9 ...
> > >
> > >
> > > In practical it usually works without any issue using the mvn -U ...but
> > > you should be aware of this issue...
> > >
> > >
> > > The only solution which I have found to make 100% sure is to use the
> > > output during the build of the project A and use those parsed
> > > informations about the SNAPSHOT versions and inject them into my
> current
> > > build ...(https://github.com/khmarbaise/deployment-recorder-extension
> > > not ready yet)...
> > >
> > > Kind regards
> > > Karl Heinz Marbaise
> > >
> > >
> > >>
> > >> There are some corner cases where it won’t. I think it only checks for
> > a new snapshot every few hours or so, so if you are putting out a lot you
> > might conceivably miss one. You can reset that if you need to
> > >> .
> > >>> On Apr 7, 2017, at 11:27 AM, Magnanao, Hector <
> hector.magna...@sap.com>
> > wrote:
> > >>>
> > >>> If the builds for A are always getting a unique build number as a
> > snapshot build,  how am I sure that B will always get the latest snapshot
> > of A ?  Is there a way to name the A snapshot builds with a unique build
> > number each time for this scenario.
> > >>>
> > >>> -----Original Message-----
> > >>> From: Russell Gold [mailto:russell.g...@oracle.com]
> > >>> Sent: Thursday, April 6, 2017 2:27 PM
> > >>> To: Maven Users List <users@maven.apache.org>
> > >>> Subject: Re: dependency question
> > >>>
> > >>> The simplest way is simply to use a snapshot version of A. That way B
> > will always use the latest snapshot. When you finally release A, you can
> > have B point to the released version instead of the snapshot.
> > >>>
> > >>>> On Apr 6, 2017, at 2:52 PM, Magnanao, Hector <
> hector.magna...@sap.com>
> > wrote:
> > >>>>
> > >>>> I have to 2 java projects a and b in maven.  The B project uses the
> A
> > build as a dependency.  How do I ensure the whenever the A project has a
> > new build,  the B project will always use that latest build in A.  A is
> > being built with a unique build number each time it gets built.  So is A
> > has build # 10 as the newest build,  the B project has to use build #10
> of
> > A.
> > >>>>
> > >>>>
> > >>>> Hector Magnanao Jr.
> > >>>> SCM Analyst
> > >>>> SAP Fieldglass
> > >>>> Skype:  (331) 702-6142
> > >>>> Mobile:  (847) 857-8401
> > >>>> Email: hector.magna...@sap.com
> > >>>>
> > >>>
> > >>>
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > > For additional commands, e-mail: users-h...@maven.apache.org
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > For additional commands, e-mail: users-h...@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > For additional commands, e-mail: users-h...@maven.apache.org
> >
>
-- 
Sent from my phone

Reply via email to