On Tue, Feb 16, 2010 at 9:45 AM, Anders Janmyr <anders.jan...@jayway.com>wrote:

> I have an artifact that is constructed from a zip-file, like this
>
>  google_zip = download "target/google-collect-1.0.zip" =>
> 'http://google-collections.googlecode.com/files/google-collect-1.0.zip'
>  google_jar = file("target/zip/google-collect-1.0/google-collect-1.0.jar"
> => unzip('target/zip'=>google_zip))
>  google_artifact =
> artifact('google:google-collect:jar:1.0').from(google_jar)
>
>  define 'core' do
>    compile.with 'commons-lang:commons-lang:jar:2.4', google_artifact
>    package :jar
>  end
>
> If I build once and then clean and build againm the zip-file is
> downloaded again, even though
> the artifact is already in the repository. This seems wrong to me. Am
> I doing something wrong?
>

artifact(...).from(...) only changes the source of the artifact for a given
execution.   It doesn't actually install the artifact in the local Maven2
repo.   If you want to install it, you can do something along the lines of:

google_artifact = artifact('google:google-collect:jar:1.0').tap do |a|
  unless a.exist?
    google_zip = download "target/google-collect-1.0.zip" => '
http://google-collections.googlecode.com/files/google-collect-1.0.zip'
    google_jar = file("target/zip/google-collect-1.0/google-collect-1.0.jar"
=> unzip('target/zip'=>google_zip))
    google_jar.invoke
    a.from(google_jar)
    a.install
  end
end



> And by the way, I'm giving a presentation on Buildr in Stockholm,
> Sweden next week since I think Buildr is so good :)
>
> http://jwsbuildr10.eventbrite.com/ (In Swedish)
>

That's awesome!  Thanks for spreading the word.

alex

Reply via email to