如何以nexus / sonartype发布现有项目的所有jar?

时间:2016-12-20 15:52:18

标签: maven nexus

我有一个maven项目,我已经在我的本地主机中拥有了所有依赖项。我想将所有这些依赖项推送到nexus/sonartype

我不想通过nexus界面上传来逐个推送jar

所以我将maven存储库($MAVEN_HOME/repository)的内容复制到{nexus-data}/storage/public

Nexus重启后必须重新计算索引吗?

2 个答案:

答案 0 :(得分:2)

您可能想要使用Distribution Management -

<distributionManagement>
    <repository>
        <id>some-artifactory</id>
        <name>Artifactory Name</name>
        <url>http://your.artifactory.address/releases</url>
    </repository>
    <snapshotRepository>
        <id>other-artifactory</id>
        <name>Other Artifactory Name</name>
        <url>http://your.artifactory.address/snapshots</url>
    </snapshotRepository>
</distributionManagement>
  

存储库

     

存储库元素在POM中指定位置的位置   以及Maven可以下载远程工件以供其使用的方式   当前项目,distributionManagement指定这个(以及如何)的位置   部署时,项目将到达远程存储库。该   如果存储库元素将用于快照分发   snapshotRepository未定义。

答案 1 :(得分:2)

  

所以我将我的maven存储库($ MAVEN_HOME / repository)的内容复制到{nexus-data} / storage / public

不要这样做。在Nexus 3中,Nexus不使用原始文件,所以依靠这种方法无论如何都不适合你。

您应该使用@nullpointer描述的分发管理。如果由于某种原因你不能,你可以写一个脚本来使用Nexus&#39; REST API用于上传许多工件。当你不使用Maven构建时,这会更有用。例如,您可能需要上传一大堆旧版jar文件。