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 Shaka Tard <sh...@gmail.com> on 2011/07/18 21:43:54 UTC
Prevent publish of duplicate object
Hi. I'm using Nexus Artifact Repository with IVY and ANT, and I like it
very much.
I have Hudson building my artifacts on a regular basis, even if the source
code hasn't changed on these applications at all. I do this to ensure that
the thing is building and working properly, and also to integrate the latest
revisions of libraries to ensure that a new library revision builds and
integrates with my builds. I use this as my proverbial canary in the coal
mine, and it let's me know when something new is breaking my codebase.
However, my libraries don't change too often, and that's not the source of
my problem. My problem is what happens when the builds are identical.
I auto-increment my build number using ivy:buildnumber. My biggest concern
at the moment is that my ANT script publishes the artifacts regardless of
whether the latest artifact is identical to the one produced yesterday.
This means I could have hundreds of revisions cluttering up Nexus when my
continuous integration is running, and I don't want to continue to let that
happen. I could make publishing a manual affair, but I'd rather not do that
too, if it can be avoided.
I know that the artifacts are stored with their checksum. I could build
another ivy.xml file, and set the artifact as a dependency, resolve it, and
then using ANT I could determine whether the file is identical or not, and
prevent the publish that way. That, however, seems to be a lot of work, and
I decided to write to this user group to see if there were any better ways
to accomplish this task.
Thanks much in advance,
Shaka
Re: Prevent publish of duplicate object
Posted by Tim Brown <tp...@gmail.com>.
The last time I approached this problem I did the following:
- Versioned my artifacts to reflect their version in SCM (Svn revision
# in this case)
- Used ivy:findrevision to determine if the current artifact was in my Repo
I only published if the artifact wasn't in the repo, and if it wasn't
a "container" artifact. i.e. - if it's a WAR which contains jars, I
published it each time.
HTH,
~Tim
On Mon, Jul 18, 2011 at 12:43 PM, Shaka Tard <sh...@gmail.com> wrote:
> Hi. I'm using Nexus Artifact Repository with IVY and ANT, and I like it
> very much.
>
> I have Hudson building my artifacts on a regular basis, even if the source
> code hasn't changed on these applications at all. I do this to ensure that
> the thing is building and working properly, and also to integrate the latest
> revisions of libraries to ensure that a new library revision builds and
> integrates with my builds. I use this as my proverbial canary in the coal
> mine, and it let's me know when something new is breaking my codebase.
> However, my libraries don't change too often, and that's not the source of
> my problem. My problem is what happens when the builds are identical.
>
> I auto-increment my build number using ivy:buildnumber. My biggest concern
> at the moment is that my ANT script publishes the artifacts regardless of
> whether the latest artifact is identical to the one produced yesterday.
> This means I could have hundreds of revisions cluttering up Nexus when my
> continuous integration is running, and I don't want to continue to let that
> happen. I could make publishing a manual affair, but I'd rather not do that
> too, if it can be avoided.
>
> I know that the artifacts are stored with their checksum. I could build
> another ivy.xml file, and set the artifact as a dependency, resolve it, and
> then using ANT I could determine whether the file is identical or not, and
> prevent the publish that way. That, however, seems to be a lot of work, and
> I decided to write to this user group to see if there were any better ways
> to accomplish this task.
>
> Thanks much in advance,
> Shaka
>