代码之家  ›  专栏  ›  技术社区  ›  menteith

将jar从Maven central安装到local.m2存储库中

  •  0
  • menteith  · 技术社区  · 5 年前

    我有一个使用maven 2发布的库。这个库的典型用户不使用maven来构建他们的应用程序,但是可能对maven比较熟悉,并且可能已经安装了它。

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

    我本以为有办法的,但看完后似乎找不到 install:install-file dependency 插件文档。我尝试过这样的事情:

    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
    

    但我想我找错了树,因为看起来安装插件是用来将本地构建的文件复制到本地存储库,而不是将远程工件下载到本地存储库。

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

    这可以用maven吗?

    0 回复  |  直到 14 年前
        1
  •  168
  •   Pascal Thivent    14 年前

    从版本2.1开始 Maven Dependency Plugin ,有一个 dependency:get 为此目的的目标。要确保使用正确版本的插件,需要使用“完全限定名”:

    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
    
        2
  •  46
  •   bmargulies    14 年前

    给他们一个简单的pom,将这些jar列为依赖项和运行说明:

    mvn dependency:go-offline
    

    这将把依赖关系拉到本地repo。

    更直接的解决办法是 dependency:get ,但有很多参数需要输入:

    mvn dependency:get -DrepoUrl=something -Dartifact=group:artifact:version
    
        3
  •  21
  •   Eric B.    12 年前

    从版本2.4开始 Maven Dependency Plugin ,还可以使用-Ddest标志定义工件的目标目标目标。它应该指向目标工件的文件名(而不是目录)。见 parameter page 对于可以使用的其他参数

    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