美文网首页
Maven deploy 打包到远程仓库以及从远程仓库下载jar

Maven deploy 打包到远程仓库以及从远程仓库下载jar

作者: xhh199090 | 来源:发表于2021-04-23 11:13 被阅读0次

    1、Maven deploy 打包到远程仓库

    mvn deploy 用来将项目工程生成的构件分发到远程Maven仓库。例如:

    mvn deploy:deploy-file -DgroupId=com.my -DartifactId=test -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=E:\test.jar -Durl=http://maven.my.com/repository/maven-snapshots/ -DrepositoryId=snapshots
    

    DrepositoryId服务器的表示id,在nexus的configuration可以看到。

    我们需要在项目的POM文件中配置distributionManagement来指定Maven分发构件的位置,如下:

    <project>    
      ...    
      <distributionManagement>    
        <repository>    
          <id>nexus-releases</id>    
          <name>Nexus Release Repository</name>    
          <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>    
        </repository>    
        <snapshotRepository>    
          <id>nexus-snapshots</id>    
          <name>Nexus Snapshot Repository</name>    
          <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>    
        </snapshotRepository>    
      </distributionManagement>    
      ...    
    </project> 
    

    Maven区别对待release版本的构件和snapshot版本的构件,snapshot为开发过程中的版本,不稳定,release版本则比较稳定。Maven会根据你项目的版本来判断将构件分发到哪个仓库。
    一般来说,分发构件到远程仓库需要认证,如果你没有配置任何认证信息,你往往会得到401错误。这个时候需要在本地maven的settings.xml中配置认证信息:

    <settings>    
      ...    
      <servers>    
        <server>    
          <id>nexus-releases</id>    
          <username>admin</username>    
          <password>admin123</password>    
        </server>    
        <server>    
          <id>nexus-snapshots</id>    
          <username>admin</username>    
          <password>admin123</password>    
        </server>      
      </servers>    
      ...    
    </settings>
    

    需要注意的是,settings.xml中server元素下id的值必须与POM中repository或snapshotRepository下id的值完全一致。

    2、项目工程从远程仓库下载引用依赖jar包

    pom.xml文件引用了一个不存在中央仓库的自定义开发jar包
    在pom.xml文件中添加如下声明:

    <dependency>
            <groupId>com.it.bigdata</groupId>
            <artifactId>hbase-core-adapter</artifactId>
            <version>1.0.0</version>
    </dependency>
    

    如果报错,在本地资源库没有找到,在中央资源库也没找到,需要声明远程私服仓库,到远程仓库去查找依赖

    <repositories>
        <repository>    
            <id>java.net</id>
            <name>Sonatype Nexus Releases</name>
            <url>https://10.90.11.11/content/repositories/release/</url>
        </repository>    
    </repositories>
    

    相关文章

      网友评论

          本文标题:Maven deploy 打包到远程仓库以及从远程仓库下载jar

          本文链接:https://www.haomeiwen.com/subject/ozhcrltx.html