人最先衰老的从来不是容貌,而是那份不顾一切的闯劲.

前面①中已经介绍了搭建私服和创建仓库,本文中介绍怎么管理构建,idea开发工具发布jar包到私服.

一:在maven管理器中创建人员以及赋予权限

 第一步:创建权限(Privileges)

maven添加公司私有的依赖仓库 maven搭建私有仓库_jar

第二步:创建角色(Roles)

maven添加公司私有的依赖仓库 maven搭建私有仓库_jar_02

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_03

第三步:创建人员

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_04

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_05

填写完信息,点击保存.

二:让maven项目使用搭建的maven私服

maven下的setting.xml文件和项目中的pom.xml文件的关系:

    Ⅰ.settting.xml文件就是本地,电脑上的全局变量;而pom.xml文件就是局部变量。

    Ⅱ.项目创建的pom.xml文件对于项目来说,优先级别最高。如果pom.xml文件中没有配置镜像地址的话,只能去按照全局变量中定义的地址去下载.

    Ⅲ.那怎么去找全局变量呢?IDE【编译工具】中直接指定确定的setting.xml文件,这样在pom.xml文件中没有的情况下,IDE就按照设定的去找对应的setting.xml文件。

注:有一点要注意的就是,maven如果是你自己下载的,那里面肯定会有一份setting.xml文件。什么都不配置的话,它全部都是按照默认值去干的,例如本地仓库它默认的就是放在用户/.m2/文件夹下的。

①在原始的setting文件中加入

maven添加公司私有的依赖仓库 maven搭建私有仓库_jar_06

拷贝的这个地址,就是下面即将在setting.xml文件中添加时使用的。可以对应下面的setting.xml文件中看。

maven添加公司私有的依赖仓库 maven搭建私有仓库_xml文件_07

 

 

<!--id 自定义 username和password 为nexus中的人员账号和密码-->
<servers>
   <server>
      <id>nexus_dep</id>
      <username>xxxx</username>
      <password>xxxx</password>
   </server>
   <server>
      <id>nexus_admin</id>
      <username>xxxx</username>
      <password>xxxx</password>
   </server>
</servers>

<!--ID 为server中的相应ID,URL为nexus相应仓库的URL pom.xml文件中没有指定镜像地址,则项目使用此处配置的,如果pom.xml文件中配置了,此处可以不需要配置-->
<mirrors>
	<mirror>
      <id>nexus_dep</id>
      <mirrorOf>*</mirrorOf>
      <url>http://ip+port/repository/maven-public/</url>
    </mirror>
</mirrors>

 

②修改项目中的pom.xml文件

A:配置远程仓库地址

B.配置打包时发布jar包到私有仓库

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!-- 仓库服务镜像 maven setting文件中配置了,此处可以不用配置 ID和name自定义-->
    <repositories>
        <repository>
            <id>myMaven</id>
            <name>myMaven</name>
            <url>http://ip+port/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <!--发布到私服相关配置 ID需要与setting文件中的server ID对应-->
    <distributionManagement>
        <repository>
            <id>nexus_dep</id>
            <name>Releases</name>
            <url>http://ip+port/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus_dep</id>
            <name>Snapshot</name>
            <url>http://ip+port/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
</project>

<repositories>的配置,你可以在它下面添加多个<repository> ,每个<repository>都有它唯一的ID,一个描述性的name,以及最重要的,远程仓库的url。此外,

<releases><enabled>true</enabled></releases>告诉Maven可以从这个仓库下载releases版本的构件

<snapshots><enabled>false</enabled></snapshots>告诉Maven不要从这个仓库下载snapshot版本的构件。

禁止从公共仓库下载snapshot构件是推荐的做法,因为这些构件不稳定,且不受你控制,应该避免使用。如果你想使用局域网内组织内部的仓库,可以激活snapshot的支持。

在pom文件中加入distributionManagement节点,注意:pom.xml中repository里的id需要和maven中setting.xml里的server id名称保持一致.

③发布jar包到私服

maven添加公司私有的依赖仓库 maven搭建私有仓库_java_08

Q&A:

1.重复发布出现 Return code is: 400, ReasonPhrase: Repository does not allow updating assets: maven-releases.

原因:经排查发现是因为重复发布导致的。maven私有仓库默认不允许重复部署。

浏览器登录nexus管理界面–>设置图标–>Repository–>Repositories–>maven-releases–>Hosted–>请选择‘Allow redeploy’策略,默认是disable策略,然后保存。 请注意,不同版本的nexus,进入的路径可能有细微区别。

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven_09

  • 如果出现400,需要注意项目下的pom.xml文件和maven使用的setting.xml文件的配置是否一致。
  • 如果出现401,需要检查maven使用的setting.xml中的帐号和密码是否正确,相应的repository是否为“Allow Redeploy”。

2,发布无权限 Could not transfer artifact from/to XXXXXX  Not authorized

原因,如果是使用的新建人员,则人员没有配置相应权限.

maven添加公司私有的依赖仓库 maven搭建私有仓库_xml文件_10

3.maven下载jar包,文件以.lastUpdated结尾

原因:仓库里面没有相应的jar包

解决:

         1.先删除本地的文件(通过cmd批量删除本地仓库中以.lastUpdated结尾的文件 del *.lastUpdated /s)

         2.上传jar包到私服

         3.在项目中重新下载jar包

三:查询jar包

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_11

点开查看:

maven添加公司私有的依赖仓库 maven搭建私有仓库_java_12

点进入jar包的这个概要信息

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_13

 

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_14

四:上传jar包

1.使用命令上传第三方jar到nexus

上传一个处理word的jar包到nexus上,jar包为jacob,资源库为hosted

maven添加公司私有的依赖仓库 maven搭建私有仓库_jar_15

我们先在nexus上搜索一下:下面是搜不出来的

maven添加公司私有的依赖仓库 maven搭建私有仓库_java_16

把hosted资源库配置到maven的settting.xml文件中

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_17

     <!--id自定义,但是在使用命令上传的时候会用到-->
           <server> 
                 <id>myself_hosted</id> 
                <username>admin</username> 
                <password>admin123</password> 
           </server>

使用以下命令

导入第三方jar的命令

       mvn deploy:deploy-file -DgroupId=sxd.jar -DartifactId=jacob -Dversion=1.18 -Dpackaging=jar -Dfile=G:\jar\jacob-1.18.jar -Durl=http://localhost:8081/repository/myself_hosted/ -DrepositoryId=myself_hosted

导入第三方pom文件的命令

       mvn deploy:install-file -Dfile=D:\document\IdeaProjects\myTestDocument\jar\tx-lcn-4.2.0-SNAPSHOT.pom -DgroupId=com.codingapi -DartifactId=tx-lcn -Dversion=4.2.0-SNAPSHOT -Dpackaging=pom

命令解释:

-DgroupId=sxd.jar                    自定义

-DartifactId=jacob                    自定义

-Dversion=1.18                        自定义  三个自定义,构成pom.xml文件中的坐标

-Dpackaging=jar                    上传的类型是jar类型

-Dfile=G:\jar\jacob-1.18.jar                  jar的本地磁盘位置

-Durl=http://localhost:8081/repository/myself_hosted/    hosted资源库的地址,下图中

-DrepositoryId=myself_hosted              setting.xml文件中配置的ID

 

maven添加公司私有的依赖仓库 maven搭建私有仓库_xml文件_18

 

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_19

上传完成,再nexus中查看一下:

maven添加公司私有的依赖仓库 maven搭建私有仓库_jar_20

 

maven添加公司私有的依赖仓库 maven搭建私有仓库_jar_21

上传成功!!!

2.使用窗口Upload           

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_22

maven添加公司私有的依赖仓库 maven搭建私有仓库_maven添加公司私有的依赖仓库_23

Extension:类型(jar/pom)

注:jar文件和pom文件都要上传,否则下载代码的时候没有相应的pom文件   

至此maven项目使用maven仓库私服相关配置结束,感谢大家阅读!