Hi Ed, My suspicion is that using sftp for downloading artifacts doesn't work. I don't know if it's ever been tested; sftp support was mostly added for deploying artifacts. I'll investigate tomorrow; too tired now, just flew back home.
alex On Wed, Aug 18, 2010 at 10:46 AM, Ed Smiley <[email protected]> wrote: > I have been running into this problem when attempting to download an > archive > from a remote repository in a variety of ways as I attempted to work around > it. I uploaded and verified the installation of an archive on a server > that > I set up via sftp. When I trigger a download, it seems to want to install > the archive in a directory on my machine that mirrors its location on the > remote server, rather than installing it in my local .m2 (maven2) > repository. > > Rather than give a long explanation, I coded up a pair of build scripts, > one > to create and upload the archive and another to unzip the archive. I tried > to use code that is very close to documentation example code, so that any > complexities are eliminated. Here's the details (with security sensitive > details obscured. > > 1. A simple buildfile for a jar that has a single class in it. > ...src/main/java/org/screwloose/repotest/RepoStub.java > a. the buildfile > VERSION_NUMBER = "1.0.0" > # Group identifier for your projects > GROUP = "repotest" > COPYRIGHT = "" > # Specify Maven 2.0 remote repositories here, like this: > repositories.remote << "http://www.ibiblio.org/maven2/" > # Specify Maven 2.0 remote repository to release to > repositories.release_to = 'sftp:// > someuser:[email protected]/usr/share/maven2/' > desc "The Repotest project" > define "repotest" do > project.version = VERSION_NUMBER > project.group = GROUP > manifest["Implementation-Vendor"] = COPYRIGHT > package(:jar) > end > b. running the buildfile > ~/somedirectory/research/repotest $ buildr upload > (in /somehomedirs/myusername/somedirectory/research/repotest, development) > Building repotest > Packaging repotest > Running integration tests... > Deploying packages from repotest > Deploying repotest:repotest:pom:1.0.0 > Deploying repotest:repotest:jar:1.0.0 > Completed in 13.721s > > 2. Another stub buildfile with a compile, and hence, a build, dependency on > downloading the jar from the remote. > a. the stub > # Generated by Buildr 1.3.5, change to your liking > # Version number for this release > VERSION_NUMBER = "1.0.0" > # Group identifier for your projects > GROUP = "repotest" > COPYRIGHT = "" > # Specify Maven 2.0 remote repositories here, like this: > repositories.remote << 'sftp:// > someuser:[email protected]/usr/share/maven2/' > repositories.remote << "http://www.ibiblio.org/maven2/" > desc "The Repotest Test Archive project" > define "testarch" do > project.version = VERSION_NUMBER > project.group = GROUP > manifest["Implementation-Vendor"] = COPYRIGHT > the_jar = artifact('repotest:repotest:jar:1.0.0') > task :unzip_jar => unzip(_("target/stuff") => the_jar) do > compile.with Dir[_("target/stuff/WEB-INF/lib") + "/*.jar"] > end > task :compile => :unzip_jar > end > > b. running the test script with trace > ~/somedirectory/research/repotest $ buildr -f testsarc.rb --trace > (in /somehomedirs/myusername/somedirectory/research/repotest, development) > ** Invoke testarch (first_time) > ** Execute testarch > Defining task testarch:shell:jirb > Defining task testarch:shell:clj > Defining task testarch:shell:bsh > ** Invoke > > /somehomedirs/myusername/.m2/repository/org/apache/ant/ant/1.7.1/ant-1.7.1.jar > (first_time, not_needed) > ** Invoke > > /somehomedirs/myusername/.m2/repository/org/apache/ant/ant-launcher/1.7.1/ant-launcher-1.7.1.jar > (first_time, not_needed) > ** Invoke > > /somehomedirs/myusername/.m2/repository/org/apache/ant/ant-trax/1.7.1/ant-trax-1.7.1.jar > (first_time, not_needed) > ** Invoke /somelibrarydir/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/java > (first_time, not_needed) > Defining task shell based on shell:bsh > ** Invoke testarch > ** Invoke default (first_time) > ** Invoke build (first_time) > ** Execute build > Building testarch > ** Invoke testarch:build (first_time) > ** Invoke > /somehomedirs/myusername/somedirectory/research/repotest/target/classes > (first_time, not_needed) > ** Invoke testarch:compile (first_time, not_needed) > ** Invoke testarch:resources (first_time) > ** Execute testarch:resources > ** Invoke testarch:unzip_jar (first_time) > ** Invoke > /somehomedirs/myusername/somedirectory/research/repotest/target/stuff > (first_time) > ** Invoke > > /somehomedirs/myusername/.m2/repository/repotest/repotest/1.0.0/repotest-1.0.0.jar > (first_time) > ** Execute > > /somehomedirs/myusername/.m2/repository/repotest/repotest/1.0.0/repotest-1.0.0.jar > Downloading repotest:repotest:jar:1.0.0 > Downloading repotest:repotest:jar:1.0.0 > Connecting to someserver.somedomain.com > connected > Downloading to /usr/share/maven2/repotest/repotest/1.0.0/repotest-1.0.0.jar > [hangs for an hour or moreā¦.<===========================] >
