一个简单的命令行,用于将远程maven2工件下载到本地存储库?

emm*_*mby 114 maven-2

我有一个我使用maven 2分发的库.这个库的典型用户不使用maven来构建他们的应用程序,但可能有点熟悉maven并且可能安装了它.

我想记录一个"简单"的一行命令,他们可以用它来将我的库的工件下载到他们的本地,~/.m2/repository而不需要他们设置一个pom.xml来完成它.

我认为有一种方法可以做到这一点,但在查看install:install-filedependency插件文档之后我似乎无法找到它.我尝试过这样的事情:

mvn install:install-file -DrepositoryId=java.net -Durl=http://download.java.net/maven/2/ -Dfile=robo-guice-0.4-20091121.174618-1.jar -DpomFile=robo-guice-0.4-20091121.174618-1.pom -DgroupId=robo-guice -DartifactId=robo-guice -Dversion=0.4-SNAPSHOT -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

但我认为我正在咆哮错误的树,因为看起来安装插件用于将本地构建的文件复制到本地存储库,而不是将远程工件下载到本地存储库.

这是我要安装的工件:http://download.java.net/maven/2/robo-guice/robo-guice/0.4-SNAPSHOT/

这可能是使用maven吗?

Pas*_*ent 161

Maven Dependency Plugin 2.1版开始,就有了一个依赖:为此目的获得目标.要确保使用正确版本的插件,您需要使用"完全限定名称":

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
    -DrepoUrl=http://download.java.net/maven/2/ \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT

  • @domi(后代的迟来的答案):使用"-Ddest = path/to/my.jar"; 否则,它只是复制到你的本地〜/ .m2 /存储库(看起来没什么变化).请参阅http://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html#destination = example => mvn org.apache.maven.plugins:maven-dependency-plugin:2.5.1:get -DremoteRepositories = http://repo.maven.apache.org-Dartifact = org.apache.ant:ant:1.8.1-Ddest = ant-1.8.1.jar(结果:当前的ant-1.8.1.jar)目录) (9认同)
  • 目标很好,但是如何定义我希望将文件复制到的目标目录?(和文件名) (4认同)
  • Pascal,你能告诉我如何定义用户+密码来访问存储库吗?使用http:// user:password @ repourl的技巧不起作用. (2认同)
  • 谢谢!虽然,在您发布的文档链接中,有"不推荐使用".将remoteRepositories`用于`repoUrl`.请更新答案:) (2认同)

bma*_*ies 44

给他们一个微不足道的pom,将这些jar列为依赖项和运行指令:

mvn dependency:go-offline
Run Code Online (Sandbox Code Playgroud)

这会将依赖项拉到本地仓库.

一个更直接的解决方案是依赖:get,但输入的参数很多:

mvn dependency:get -DrepoUrl=something -Dartifact=group:artifact:version
Run Code Online (Sandbox Code Playgroud)


Eri*_* B. 19

Maven Dependency Plugin 2.4版开始,您还可以使用-Ddest标志为工件定义目标目标.它应指向目标工件的文件名(而不是目录).有关可以使用的其他参数,请参阅参数页面

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get \
    -DremoteRepositories=http://download.java.net/maven/2 \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT \
    -Ddest=c:\temp\robo-guice.jar
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!-Ddest 被标记为已弃用。有新的解决方案吗? (2认同)
  • 复制目标不会复制传递deps. (2认同)