You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by David Harrigan <dh...@gmail.com> on 2010/09/26 15:33:44 UTC
Confusion over latest integration resolution
Hi all,
I'm building from ivy from svn head.
I'm finding it difficult to get to grips with doing what I thought
would be a simple action :s
I have a project with an ivy file like this:
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="com.fubar" module="fubar"
revision="${module.version}" />
<configurations>
<conf name="runtime"/>
</configurations>
<publications>
<artifact name="fubar" type="jar" />
</publications>
<dependencies>
<!-- LOGBACK -->
<dependency org="ch.qos.logback" name="logback-core"
rev="0.9.25" conf="runtime->default" />
<dependency org="ch.qos.logback" name="logback-classic"
rev="0.9.25" conf="runtime->default" />
</dependencies>
</ivy-module>
The ${module.version} is defined in the ivysettings file like this:
<property name="module.version" value="latest.integration" override="false" />
I do a build, jar and an ivy publish locally. Following which, in my
.ivy2/local directory I have this structure:
com.fubar/latest.integration/ivys
---- ivy-latest.integration.xml
com.fubar/latest.integration/jars
---- fubar.jar
In another project, I have the following ivy file configured:
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="com.fubar" module="tmp" revision="${module.version}" />
<configurations>
<conf name="runtime"/>
</configurations>
<dependencies>
<!-- FUBAR -->
<dependency org="com.fubar" name="fubar"
rev="latest.integration" conf="runtime->default" />
</dependencies>
</ivy-module>
When I perform a ivy retrieve, I get the following error:
resolve:
[ivy:retrieve] :: Ivy 2.2.x-local-20100926061158 - 20100926061158 ::
http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: loading settings :: file =
/Users/david/tmp/conf/ivy/ivysettings.xml
[ivy:retrieve] :: resolving dependencies :: com.fubar#tmp;latest.integration
[ivy:retrieve] confs: [runtime]
[ivy:retrieve] found com.fubar#fubar;latest.integration in local
[ivy:retrieve] :: resolution report :: resolve 257ms :: artifacts dl 0ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| runtime | 1 | 0 | 0 | 0 || 0 | 0 |
---------------------------------------------------------------------
[ivy:retrieve]
[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: UNRESOLVED DEPENDENCIES ::
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: com.fubar#fubar;latest.integration: impossible to
resolve dynamic revision
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :::: ERRORS
[ivy:retrieve] impossible to resolve dynamic revision for
com.fubar#fubar;latest.integration: check your configuration and make
sure revision is part of your pattern
[ivy:retrieve]
[ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
[ivy:retrieve] :: retrieving :: com.fubar#tmp [sync]
[ivy:retrieve] confs: [runtime]
[ivy:retrieve] 0 artifacts copied, 0 already retrieved (0kB/3ms)
So, ivy apparently finds the artifact, but won't resolve it for me.
All I'm trying to do is have an latest.integration version for local
builds, then a actual version for
released builds (I have variable substitutions going on, in these
examples I've hard-coded the substitutions).
I do hope someone can help, it's causing me a headache :-)
-=david=-
--
I prefer encrypted and signed messages. KeyID: B20A22F9
Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
Re: Confusion over latest integration resolution
Posted by David Harrigan <dh...@gmail.com>.
Hi,
Just out of curiosity, what is the order of your resolvers?
Mine is:
local
shared
releases
everything else
-=david=-
On 27 September 2010 16:45, Steve Miller <th...@gmail.com> wrote:
> Sounds like you're on the right track for sure.
>
> As far as resolvers go, I have been using returnFirst=true. If I
> publish something in my local repo, I always want ivy to use that.
> When I'm done developing locally, I clear out my local repo so that
> the shared repo is used. It doesn't hurt to do it the way your doing
> it, assuming ivy can figure out the latest, but it may decrease
> performance of the resolve task.
>
> Steve
>
> On Mon, Sep 27, 2010 at 11:39 AM, David Harrigan <dh...@gmail.com> wrote:
>> Hi All,
>>
>> Thanks to everyone who replied :-)
>>
>> (Yes Steve, it is as you say - after a bit of experimentation I
>> understand it now)
>>
>> I have something working now, this is my setup (btw, using artifactory
>> which rocks):
>>
>> Module A:
>> module.version=0.1.0-SNAPSHOT
>>
>> When I build my jar, a fubar.jar is created in my dist directory. When
>> I publish to
>> artifactory (libs-snaphots-local), it goes in as fubar-0.1.0-SNAPSHOT.jar.
>>
>> Module B:
>> In my ivy.xml, I have declared a dependency on fubar as rev="latest.integration"
>> which pulls down from artifactory version 0.1.0-SNAPSHOT (or whatever it is).
>>
>> Whenever I do a new build of Module A, I keep the version to be 0.1.0-SNAPSHOT,
>> but the great thing is when I publish it, the date has changed so when I ask
>> Module B to do a resolve for me, it pulls down the latest from artifactory.
>>
>> If I now do this:
>>
>> ant -Dmodule.version=0.1.0 ivy.publish.release
>>
>> Module A goes into the libs-releases-local of artifactory.
>>
>> Now in my Module B ivy.xml, I change the rev from latest.integration to
>> 0.1.0 and when ivy does a resolve in Module B it pulls down the release
>> version.
>>
>> Neato.
>>
>> I like the fact that I can control the version numbers myself which is good.
>>
>> I think I understand it now, would I be on the right track?
>>
>> My last question I have now is local artifacts verses remote artifacts.
>>
>> Say I am working on Module A. Doing some code changes. I publish
>> locally my snapshot (say 0.2.0-SNAPSHOT). In my Module B, I have
>> changed the dependency on Module A revision from 0.1.0 now to
>> latest.integration.
>>
>> I remove the value "returnFirst" from my chain and indeed when I do
>> a resolve on Module B, ivy installs Module A 0.2.0-SNAPSHOT into
>> my Module B libs directory.
>>
>> My question is this:
>>
>> Is it correct to leave of returnFirst so that it forces Ivy to examine all
>> of the configured resolvers to correctly compare comparisons?
>>
>> I feel that everything seems to be working well, just looking for some
>> assurance that what I've done is accepted good practice and I'm not
>> leaving anything out.
>>
>> Thank you again one and all, it's been a very helpful few hours :-)
>>
>> -=david=-
>>
>>
>> On 27 September 2010 14:33, Steve Miller <th...@gmail.com> wrote:
>>> Actually, the jar will probably be named fubar.jar before you publish
>>> it. Then the publish ant task would have a revision of 1.0-SNAPSHOT,
>>> so when it's published, the jar would then be fubar-1.0-SNAPSHOT.jar
>>> in your repository (depending on your repository pattern).
>>>
>>> On Mon, Sep 27, 2010 at 7:03 AM, David Harrigan <dh...@gmail.com> wrote:
>>>> I see, so, if I put something like:
>>>>
>>>> fubar-1.0-SNAPSHOT.jar
>>>>
>>>> at the end of my jar and publish that, ivy should (after a bit of
>>>> further tweaking) pick up on that?
>>>>
>>>> I'll give it a whirl later and let you all know. Thanks all for your replies.
>>>>
>>>> -=david=-
>>>>
>>>> On 26 September 2010 16:34, Mitch Gitman <mg...@gmail.com> wrote:
>>>>> This is something I stumbled on myself, but depending on
>>>>> "latest.integration" actually resolves a module with a status of integration
>>>>> OR GREATER. So, using the default set of statuses, "latest.integration" will
>>>>> get the latest module, whether its status is release or milestone or
>>>>> integration.
>>>>>
>>>>> The default status is integration if you don't specify one for ivy:deliver
>>>>> or ivy:publish. The documentation refers to an ivy.status property when it
>>>>> comes to how ivy:deliver/ivy:publish defaults the status but doesn't mention
>>>>> what that property's own default value is. There is an ivy.status.default
>>>>> property as well.
>>>>>
>>>>> On Sun, Sep 26, 2010 at 8:01 AM, James Davis <ja...@atsid.com> wrote:
>>>>>
>>>>>> Additionally, the status of the artifact may need to be set to integration.
>>>>>> As I understand it, latest integration pulls the latest version of an
>>>>>> artifact that has a status of integration. However, I am not sure what the
>>>>>> default module status is though (have not looked at the docs to confirm).
>>>>>>
>>>>>> James Davis • QA Engineer II/Software Engineer
>>>>>> Applied Technical Systems, Inc. • Systems Division
>>>>>> web: www.atsid.com • e-mail: james.davis@atsid.com
>>>>>> (p) 360.698.7100 x241 • (f) 360.698.7200
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> I prefer encrypted and signed messages. KeyID: B20A22F9
>>>> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>>>>
>>>
>>
>>
>>
>> --
>> I prefer encrypted and signed messages. KeyID: B20A22F9
>> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>>
>
--
I prefer encrypted and signed messages. KeyID: B20A22F9
Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
Re: Confusion over latest integration resolution
Posted by Steve Miller <th...@gmail.com>.
Sounds like you're on the right track for sure.
As far as resolvers go, I have been using returnFirst=true. If I
publish something in my local repo, I always want ivy to use that.
When I'm done developing locally, I clear out my local repo so that
the shared repo is used. It doesn't hurt to do it the way your doing
it, assuming ivy can figure out the latest, but it may decrease
performance of the resolve task.
Steve
On Mon, Sep 27, 2010 at 11:39 AM, David Harrigan <dh...@gmail.com> wrote:
> Hi All,
>
> Thanks to everyone who replied :-)
>
> (Yes Steve, it is as you say - after a bit of experimentation I
> understand it now)
>
> I have something working now, this is my setup (btw, using artifactory
> which rocks):
>
> Module A:
> module.version=0.1.0-SNAPSHOT
>
> When I build my jar, a fubar.jar is created in my dist directory. When
> I publish to
> artifactory (libs-snaphots-local), it goes in as fubar-0.1.0-SNAPSHOT.jar.
>
> Module B:
> In my ivy.xml, I have declared a dependency on fubar as rev="latest.integration"
> which pulls down from artifactory version 0.1.0-SNAPSHOT (or whatever it is).
>
> Whenever I do a new build of Module A, I keep the version to be 0.1.0-SNAPSHOT,
> but the great thing is when I publish it, the date has changed so when I ask
> Module B to do a resolve for me, it pulls down the latest from artifactory.
>
> If I now do this:
>
> ant -Dmodule.version=0.1.0 ivy.publish.release
>
> Module A goes into the libs-releases-local of artifactory.
>
> Now in my Module B ivy.xml, I change the rev from latest.integration to
> 0.1.0 and when ivy does a resolve in Module B it pulls down the release
> version.
>
> Neato.
>
> I like the fact that I can control the version numbers myself which is good.
>
> I think I understand it now, would I be on the right track?
>
> My last question I have now is local artifacts verses remote artifacts.
>
> Say I am working on Module A. Doing some code changes. I publish
> locally my snapshot (say 0.2.0-SNAPSHOT). In my Module B, I have
> changed the dependency on Module A revision from 0.1.0 now to
> latest.integration.
>
> I remove the value "returnFirst" from my chain and indeed when I do
> a resolve on Module B, ivy installs Module A 0.2.0-SNAPSHOT into
> my Module B libs directory.
>
> My question is this:
>
> Is it correct to leave of returnFirst so that it forces Ivy to examine all
> of the configured resolvers to correctly compare comparisons?
>
> I feel that everything seems to be working well, just looking for some
> assurance that what I've done is accepted good practice and I'm not
> leaving anything out.
>
> Thank you again one and all, it's been a very helpful few hours :-)
>
> -=david=-
>
>
> On 27 September 2010 14:33, Steve Miller <th...@gmail.com> wrote:
>> Actually, the jar will probably be named fubar.jar before you publish
>> it. Then the publish ant task would have a revision of 1.0-SNAPSHOT,
>> so when it's published, the jar would then be fubar-1.0-SNAPSHOT.jar
>> in your repository (depending on your repository pattern).
>>
>> On Mon, Sep 27, 2010 at 7:03 AM, David Harrigan <dh...@gmail.com> wrote:
>>> I see, so, if I put something like:
>>>
>>> fubar-1.0-SNAPSHOT.jar
>>>
>>> at the end of my jar and publish that, ivy should (after a bit of
>>> further tweaking) pick up on that?
>>>
>>> I'll give it a whirl later and let you all know. Thanks all for your replies.
>>>
>>> -=david=-
>>>
>>> On 26 September 2010 16:34, Mitch Gitman <mg...@gmail.com> wrote:
>>>> This is something I stumbled on myself, but depending on
>>>> "latest.integration" actually resolves a module with a status of integration
>>>> OR GREATER. So, using the default set of statuses, "latest.integration" will
>>>> get the latest module, whether its status is release or milestone or
>>>> integration.
>>>>
>>>> The default status is integration if you don't specify one for ivy:deliver
>>>> or ivy:publish. The documentation refers to an ivy.status property when it
>>>> comes to how ivy:deliver/ivy:publish defaults the status but doesn't mention
>>>> what that property's own default value is. There is an ivy.status.default
>>>> property as well.
>>>>
>>>> On Sun, Sep 26, 2010 at 8:01 AM, James Davis <ja...@atsid.com> wrote:
>>>>
>>>>> Additionally, the status of the artifact may need to be set to integration.
>>>>> As I understand it, latest integration pulls the latest version of an
>>>>> artifact that has a status of integration. However, I am not sure what the
>>>>> default module status is though (have not looked at the docs to confirm).
>>>>>
>>>>> James Davis • QA Engineer II/Software Engineer
>>>>> Applied Technical Systems, Inc. • Systems Division
>>>>> web: www.atsid.com • e-mail: james.davis@atsid.com
>>>>> (p) 360.698.7100 x241 • (f) 360.698.7200
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> I prefer encrypted and signed messages. KeyID: B20A22F9
>>> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>>>
>>
>
>
>
> --
> I prefer encrypted and signed messages. KeyID: B20A22F9
> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>
Re: Confusion over latest integration resolution
Posted by David Harrigan <dh...@gmail.com>.
Hi All,
Thanks to everyone who replied :-)
(Yes Steve, it is as you say - after a bit of experimentation I
understand it now)
I have something working now, this is my setup (btw, using artifactory
which rocks):
Module A:
module.version=0.1.0-SNAPSHOT
When I build my jar, a fubar.jar is created in my dist directory. When
I publish to
artifactory (libs-snaphots-local), it goes in as fubar-0.1.0-SNAPSHOT.jar.
Module B:
In my ivy.xml, I have declared a dependency on fubar as rev="latest.integration"
which pulls down from artifactory version 0.1.0-SNAPSHOT (or whatever it is).
Whenever I do a new build of Module A, I keep the version to be 0.1.0-SNAPSHOT,
but the great thing is when I publish it, the date has changed so when I ask
Module B to do a resolve for me, it pulls down the latest from artifactory.
If I now do this:
ant -Dmodule.version=0.1.0 ivy.publish.release
Module A goes into the libs-releases-local of artifactory.
Now in my Module B ivy.xml, I change the rev from latest.integration to
0.1.0 and when ivy does a resolve in Module B it pulls down the release
version.
Neato.
I like the fact that I can control the version numbers myself which is good.
I think I understand it now, would I be on the right track?
My last question I have now is local artifacts verses remote artifacts.
Say I am working on Module A. Doing some code changes. I publish
locally my snapshot (say 0.2.0-SNAPSHOT). In my Module B, I have
changed the dependency on Module A revision from 0.1.0 now to
latest.integration.
I remove the value "returnFirst" from my chain and indeed when I do
a resolve on Module B, ivy installs Module A 0.2.0-SNAPSHOT into
my Module B libs directory.
My question is this:
Is it correct to leave of returnFirst so that it forces Ivy to examine all
of the configured resolvers to correctly compare comparisons?
I feel that everything seems to be working well, just looking for some
assurance that what I've done is accepted good practice and I'm not
leaving anything out.
Thank you again one and all, it's been a very helpful few hours :-)
-=david=-
On 27 September 2010 14:33, Steve Miller <th...@gmail.com> wrote:
> Actually, the jar will probably be named fubar.jar before you publish
> it. Then the publish ant task would have a revision of 1.0-SNAPSHOT,
> so when it's published, the jar would then be fubar-1.0-SNAPSHOT.jar
> in your repository (depending on your repository pattern).
>
> On Mon, Sep 27, 2010 at 7:03 AM, David Harrigan <dh...@gmail.com> wrote:
>> I see, so, if I put something like:
>>
>> fubar-1.0-SNAPSHOT.jar
>>
>> at the end of my jar and publish that, ivy should (after a bit of
>> further tweaking) pick up on that?
>>
>> I'll give it a whirl later and let you all know. Thanks all for your replies.
>>
>> -=david=-
>>
>> On 26 September 2010 16:34, Mitch Gitman <mg...@gmail.com> wrote:
>>> This is something I stumbled on myself, but depending on
>>> "latest.integration" actually resolves a module with a status of integration
>>> OR GREATER. So, using the default set of statuses, "latest.integration" will
>>> get the latest module, whether its status is release or milestone or
>>> integration.
>>>
>>> The default status is integration if you don't specify one for ivy:deliver
>>> or ivy:publish. The documentation refers to an ivy.status property when it
>>> comes to how ivy:deliver/ivy:publish defaults the status but doesn't mention
>>> what that property's own default value is. There is an ivy.status.default
>>> property as well.
>>>
>>> On Sun, Sep 26, 2010 at 8:01 AM, James Davis <ja...@atsid.com> wrote:
>>>
>>>> Additionally, the status of the artifact may need to be set to integration.
>>>> As I understand it, latest integration pulls the latest version of an
>>>> artifact that has a status of integration. However, I am not sure what the
>>>> default module status is though (have not looked at the docs to confirm).
>>>>
>>>> James Davis • QA Engineer II/Software Engineer
>>>> Applied Technical Systems, Inc. • Systems Division
>>>> web: www.atsid.com • e-mail: james.davis@atsid.com
>>>> (p) 360.698.7100 x241 • (f) 360.698.7200
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> I prefer encrypted and signed messages. KeyID: B20A22F9
>> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>>
>
--
I prefer encrypted and signed messages. KeyID: B20A22F9
Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
Re: Confusion over latest integration resolution
Posted by Steve Miller <th...@gmail.com>.
Actually, the jar will probably be named fubar.jar before you publish
it. Then the publish ant task would have a revision of 1.0-SNAPSHOT,
so when it's published, the jar would then be fubar-1.0-SNAPSHOT.jar
in your repository (depending on your repository pattern).
On Mon, Sep 27, 2010 at 7:03 AM, David Harrigan <dh...@gmail.com> wrote:
> I see, so, if I put something like:
>
> fubar-1.0-SNAPSHOT.jar
>
> at the end of my jar and publish that, ivy should (after a bit of
> further tweaking) pick up on that?
>
> I'll give it a whirl later and let you all know. Thanks all for your replies.
>
> -=david=-
>
> On 26 September 2010 16:34, Mitch Gitman <mg...@gmail.com> wrote:
>> This is something I stumbled on myself, but depending on
>> "latest.integration" actually resolves a module with a status of integration
>> OR GREATER. So, using the default set of statuses, "latest.integration" will
>> get the latest module, whether its status is release or milestone or
>> integration.
>>
>> The default status is integration if you don't specify one for ivy:deliver
>> or ivy:publish. The documentation refers to an ivy.status property when it
>> comes to how ivy:deliver/ivy:publish defaults the status but doesn't mention
>> what that property's own default value is. There is an ivy.status.default
>> property as well.
>>
>> On Sun, Sep 26, 2010 at 8:01 AM, James Davis <ja...@atsid.com> wrote:
>>
>>> Additionally, the status of the artifact may need to be set to integration.
>>> As I understand it, latest integration pulls the latest version of an
>>> artifact that has a status of integration. However, I am not sure what the
>>> default module status is though (have not looked at the docs to confirm).
>>>
>>> James Davis • QA Engineer II/Software Engineer
>>> Applied Technical Systems, Inc. • Systems Division
>>> web: www.atsid.com • e-mail: james.davis@atsid.com
>>> (p) 360.698.7100 x241 • (f) 360.698.7200
>>>
>>>
>>
>
>
>
> --
> I prefer encrypted and signed messages. KeyID: B20A22F9
> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>
Re: Confusion over latest integration resolution
Posted by David Harrigan <dh...@gmail.com>.
I see, so, if I put something like:
fubar-1.0-SNAPSHOT.jar
at the end of my jar and publish that, ivy should (after a bit of
further tweaking) pick up on that?
I'll give it a whirl later and let you all know. Thanks all for your replies.
-=david=-
On 26 September 2010 16:34, Mitch Gitman <mg...@gmail.com> wrote:
> This is something I stumbled on myself, but depending on
> "latest.integration" actually resolves a module with a status of integration
> OR GREATER. So, using the default set of statuses, "latest.integration" will
> get the latest module, whether its status is release or milestone or
> integration.
>
> The default status is integration if you don't specify one for ivy:deliver
> or ivy:publish. The documentation refers to an ivy.status property when it
> comes to how ivy:deliver/ivy:publish defaults the status but doesn't mention
> what that property's own default value is. There is an ivy.status.default
> property as well.
>
> On Sun, Sep 26, 2010 at 8:01 AM, James Davis <ja...@atsid.com> wrote:
>
>> Additionally, the status of the artifact may need to be set to integration.
>> As I understand it, latest integration pulls the latest version of an
>> artifact that has a status of integration. However, I am not sure what the
>> default module status is though (have not looked at the docs to confirm).
>>
>> James Davis • QA Engineer II/Software Engineer
>> Applied Technical Systems, Inc. • Systems Division
>> web: www.atsid.com • e-mail: james.davis@atsid.com
>> (p) 360.698.7100 x241 • (f) 360.698.7200
>>
>>
>
--
I prefer encrypted and signed messages. KeyID: B20A22F9
Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
Re: Confusion over latest integration resolution
Posted by Mitch Gitman <mg...@gmail.com>.
This is something I stumbled on myself, but depending on
"latest.integration" actually resolves a module with a status of integration
OR GREATER. So, using the default set of statuses, "latest.integration" will
get the latest module, whether its status is release or milestone or
integration.
The default status is integration if you don't specify one for ivy:deliver
or ivy:publish. The documentation refers to an ivy.status property when it
comes to how ivy:deliver/ivy:publish defaults the status but doesn't mention
what that property's own default value is. There is an ivy.status.default
property as well.
On Sun, Sep 26, 2010 at 8:01 AM, James Davis <ja...@atsid.com> wrote:
> Additionally, the status of the artifact may need to be set to integration.
> As I understand it, latest integration pulls the latest version of an
> artifact that has a status of integration. However, I am not sure what the
> default module status is though (have not looked at the docs to confirm).
>
> James Davis • QA Engineer II/Software Engineer
> Applied Technical Systems, Inc. • Systems Division
> web: www.atsid.com • e-mail: james.davis@atsid.com
> (p) 360.698.7100 x241 • (f) 360.698.7200
>
>
RE: Confusion over latest integration resolution
Posted by James Davis <ja...@atsid.com>.
Additionally, the status of the artifact may need to be set to integration. As I understand it, latest integration pulls the latest version of an artifact that has a status of integration. However, I am not sure what the default module status is though (have not looked at the docs to confirm).
James Davis • QA Engineer II/Software Engineer
Applied Technical Systems, Inc. • Systems Division
web: www.atsid.com • e-mail: james.davis@atsid.com
(p) 360.698.7100 x241 • (f) 360.698.7200
________________________________________
From: Steve Miller [thatguy1177@gmail.com]
Sent: Sunday, September 26, 2010 7:08 AM
To: ivy-user@ant.apache.org
Subject: Re: Confusion over latest integration resolution
I think your problem is that your publishing with a version of
integration.latest. That value should only be used in dependencies,
not in the info tag. So when you publish, you'd end up with 1.0 or
some numbered version. Then the dependency in tmp would be able to
resolve fubar#integration.latest to fubar#1.0. If you don't define a
rev in the info tag, you can define it during publish. See the
multi-module project tutorial for an example of automatically
generating versions.
On Sun, Sep 26, 2010 at 9:33 AM, David Harrigan <dh...@gmail.com> wrote:
> Hi all,
>
> I'm building from ivy from svn head.
>
> I'm finding it difficult to get to grips with doing what I thought
> would be a simple action :s
>
> I have a project with an ivy file like this:
>
> <ivy-module version="2.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info organisation="com.fubar" module="fubar"
> revision="${module.version}" />
> <configurations>
> <conf name="runtime"/>
> </configurations>
> <publications>
> <artifact name="fubar" type="jar" />
> </publications>
> <dependencies>
> <!-- LOGBACK -->
> <dependency org="ch.qos.logback" name="logback-core"
> rev="0.9.25" conf="runtime->default" />
> <dependency org="ch.qos.logback" name="logback-classic"
> rev="0.9.25" conf="runtime->default" />
> </dependencies>
> </ivy-module>
>
> The ${module.version} is defined in the ivysettings file like this:
>
> <property name="module.version" value="latest.integration" override="false" />
>
> I do a build, jar and an ivy publish locally. Following which, in my
> .ivy2/local directory I have this structure:
>
> com.fubar/latest.integration/ivys
> ---- ivy-latest.integration.xml
> com.fubar/latest.integration/jars
> ---- fubar.jar
>
> In another project, I have the following ivy file configured:
>
> <ivy-module version="2.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info organisation="com.fubar" module="tmp" revision="${module.version}" />
> <configurations>
> <conf name="runtime"/>
> </configurations>
> <dependencies>
> <!-- FUBAR -->
> <dependency org="com.fubar" name="fubar"
> rev="latest.integration" conf="runtime->default" />
> </dependencies>
> </ivy-module>
>
> When I perform a ivy retrieve, I get the following error:
>
> resolve:
> [ivy:retrieve] :: Ivy 2.2.x-local-20100926061158 - 20100926061158 ::
> http://ant.apache.org/ivy/ ::
> [ivy:retrieve] :: loading settings :: file =
> /Users/david/tmp/conf/ivy/ivysettings.xml
> [ivy:retrieve] :: resolving dependencies :: com.fubar#tmp;latest.integration
> [ivy:retrieve] confs: [runtime]
> [ivy:retrieve] found com.fubar#fubar;latest.integration in local
> [ivy:retrieve] :: resolution report :: resolve 257ms :: artifacts dl 0ms
> ---------------------------------------------------------------------
> | | modules || artifacts |
> | conf | number| search|dwnlded|evicted|| number|dwnlded|
> ---------------------------------------------------------------------
> | runtime | 1 | 0 | 0 | 0 || 0 | 0 |
> ---------------------------------------------------------------------
> [ivy:retrieve]
> [ivy:retrieve] :: problems summary ::
> [ivy:retrieve] :::: WARNINGS
> [ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:retrieve] :: UNRESOLVED DEPENDENCIES ::
> [ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:retrieve] :: com.fubar#fubar;latest.integration: impossible to
> resolve dynamic revision
> [ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:retrieve] :::: ERRORS
> [ivy:retrieve] impossible to resolve dynamic revision for
> com.fubar#fubar;latest.integration: check your configuration and make
> sure revision is part of your pattern
> [ivy:retrieve]
> [ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
> [ivy:retrieve] :: retrieving :: com.fubar#tmp [sync]
> [ivy:retrieve] confs: [runtime]
> [ivy:retrieve] 0 artifacts copied, 0 already retrieved (0kB/3ms)
>
> So, ivy apparently finds the artifact, but won't resolve it for me.
> All I'm trying to do is have an latest.integration version for local
> builds, then a actual version for
> released builds (I have variable substitutions going on, in these
> examples I've hard-coded the substitutions).
>
> I do hope someone can help, it's causing me a headache :-)
>
> -=david=-
>
> --
> I prefer encrypted and signed messages. KeyID: B20A22F9
> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>
Re: Confusion over latest integration resolution
Posted by Steve Miller <th...@gmail.com>.
I think your problem is that your publishing with a version of
integration.latest. That value should only be used in dependencies,
not in the info tag. So when you publish, you'd end up with 1.0 or
some numbered version. Then the dependency in tmp would be able to
resolve fubar#integration.latest to fubar#1.0. If you don't define a
rev in the info tag, you can define it during publish. See the
multi-module project tutorial for an example of automatically
generating versions.
On Sun, Sep 26, 2010 at 9:33 AM, David Harrigan <dh...@gmail.com> wrote:
> Hi all,
>
> I'm building from ivy from svn head.
>
> I'm finding it difficult to get to grips with doing what I thought
> would be a simple action :s
>
> I have a project with an ivy file like this:
>
> <ivy-module version="2.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info organisation="com.fubar" module="fubar"
> revision="${module.version}" />
> <configurations>
> <conf name="runtime"/>
> </configurations>
> <publications>
> <artifact name="fubar" type="jar" />
> </publications>
> <dependencies>
> <!-- LOGBACK -->
> <dependency org="ch.qos.logback" name="logback-core"
> rev="0.9.25" conf="runtime->default" />
> <dependency org="ch.qos.logback" name="logback-classic"
> rev="0.9.25" conf="runtime->default" />
> </dependencies>
> </ivy-module>
>
> The ${module.version} is defined in the ivysettings file like this:
>
> <property name="module.version" value="latest.integration" override="false" />
>
> I do a build, jar and an ivy publish locally. Following which, in my
> .ivy2/local directory I have this structure:
>
> com.fubar/latest.integration/ivys
> ---- ivy-latest.integration.xml
> com.fubar/latest.integration/jars
> ---- fubar.jar
>
> In another project, I have the following ivy file configured:
>
> <ivy-module version="2.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info organisation="com.fubar" module="tmp" revision="${module.version}" />
> <configurations>
> <conf name="runtime"/>
> </configurations>
> <dependencies>
> <!-- FUBAR -->
> <dependency org="com.fubar" name="fubar"
> rev="latest.integration" conf="runtime->default" />
> </dependencies>
> </ivy-module>
>
> When I perform a ivy retrieve, I get the following error:
>
> resolve:
> [ivy:retrieve] :: Ivy 2.2.x-local-20100926061158 - 20100926061158 ::
> http://ant.apache.org/ivy/ ::
> [ivy:retrieve] :: loading settings :: file =
> /Users/david/tmp/conf/ivy/ivysettings.xml
> [ivy:retrieve] :: resolving dependencies :: com.fubar#tmp;latest.integration
> [ivy:retrieve] confs: [runtime]
> [ivy:retrieve] found com.fubar#fubar;latest.integration in local
> [ivy:retrieve] :: resolution report :: resolve 257ms :: artifacts dl 0ms
> ---------------------------------------------------------------------
> | | modules || artifacts |
> | conf | number| search|dwnlded|evicted|| number|dwnlded|
> ---------------------------------------------------------------------
> | runtime | 1 | 0 | 0 | 0 || 0 | 0 |
> ---------------------------------------------------------------------
> [ivy:retrieve]
> [ivy:retrieve] :: problems summary ::
> [ivy:retrieve] :::: WARNINGS
> [ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:retrieve] :: UNRESOLVED DEPENDENCIES ::
> [ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:retrieve] :: com.fubar#fubar;latest.integration: impossible to
> resolve dynamic revision
> [ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:retrieve] :::: ERRORS
> [ivy:retrieve] impossible to resolve dynamic revision for
> com.fubar#fubar;latest.integration: check your configuration and make
> sure revision is part of your pattern
> [ivy:retrieve]
> [ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
> [ivy:retrieve] :: retrieving :: com.fubar#tmp [sync]
> [ivy:retrieve] confs: [runtime]
> [ivy:retrieve] 0 artifacts copied, 0 already retrieved (0kB/3ms)
>
> So, ivy apparently finds the artifact, but won't resolve it for me.
> All I'm trying to do is have an latest.integration version for local
> builds, then a actual version for
> released builds (I have variable substitutions going on, in these
> examples I've hard-coded the substitutions).
>
> I do hope someone can help, it's causing me a headache :-)
>
> -=david=-
>
> --
> I prefer encrypted and signed messages. KeyID: B20A22F9
> Fingerprint: 110A F423 3647 54E2 880F ADAD 1C52 85BF B20A 22F9
>