搭建Maven私有仓库并在项目中使用②

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

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

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

 第一步:创建权限(Privileges)

第二步:创建角色(Roles)

第三步:创建人员

填写完信息,点击保存.

二:让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文件中加入

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

 

 

<!--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包到私服

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,进入的路径可能有细微区别。

  • 如果出现400,需要注意项目下的pom.xml文件和maven使用的setting.xml文件的配置是否一致。

  • 如果出现401,需要检查maven使用的setting.xml中的帐号和密码是否正确,相应的repository是否为“Allow Redeploy”。

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

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

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

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

解决:

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

         2.上传jar包到私服

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

三:查询jar包

点开查看:

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

 

四:上传jar包

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

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

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

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

     <!--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

 

 

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

 

上传成功!!!

2.使用窗口Upload           

Extension:类型(jar/pom)

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

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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成长20171221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值