您当前的位置: 首页 >  微服务

杨林伟

暂无认证

  • 4浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

微服务轮子项目(40) -Maven私服

杨林伟 发布时间:2021-02-03 10:55:21 ,浏览量:4

文章目录
    • 1. 安装部署
    • 2. 使用介绍
      • 2.1 创建一个用户
      • 2.2 创建一个maven仓库
      • 2.3 respository介绍
      • 2.4 提交jar到maven私服
        • 2.4.1 配置私服仓库的账号
        • 2.4.2 配置发布的私服仓库地址
        • 2.4.3 批量提交jar包
        • 2.4.4 提交某个jar
      • 2.5 指定maven地址下载jar包到本地

1. 安装部署

1.下载镜像

docker pull sonatype/nexus3

2.创建数据目录

mkdir -vp /opt/nexus/nexus-data && chown -R 200 /opt/nexus/nexus-data
  1. 启动容器
docker run -d -p 8081:8081 --name nexus --restart=always -v /opt/nexus/nexus-data:/nexus-data sonatype/nexus3

4.访问

http://ip:8081
  • ip 为远程主机的 ip 地址
  • 默认用户名/密码: admin/admin123
2. 使用介绍

有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。

如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。总归主要是两点:

  • 自己maven私服更容易维护,公司开发从maven私服迁出jar到本地仓库更快
  • 有些公司未开放外网给开发人员
2.1 创建一个用户

点击Security>Users 创建一个用户,我这里测试创建的用户/密码是:zlt/zlt,因为后面提交本地项目jar到私服仓库会用到: 在这里插入图片描述

2.2 创建一个maven仓库

设置>Repository>Repositories>Create repository>maven2(hosted)创建maven项目: 在这里插入图片描述 注意Deployment policy一定要设置成allow redeploy

2.3 respository介绍
  • proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用;
  • Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里;
  • Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存。
2.4 提交jar到maven私服 2.4.1 配置私服仓库的账号

设置本地mavensettings.xml配置,在servers标签里添加用户密码支持


    releases
    zlt
    zlt


    snapshots
    zlt
    zlt

2.4.2 配置发布的私服仓库地址

在项目的pom.xml中添加远程发布的私服仓库地址


    
        releases
        releases Repository
        http://192.168.28.138:8081/repository/maven-releases/
    

    
        snapshots
        http://192.168.28.138:8081/repository/maven-snapshots/
        true
    

必需保证serverid与构建项目的pom.xml中的repositoryid一致: 在这里插入图片描述 在这里插入图片描述

2.4.3 批量提交jar包
mvn clean deploy

maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,会覆盖老的快照版本,而在使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。

2.4.4 提交某个jar

命令格式如下:

mvn deploy:deploy-file -DgroupId=groupId -DartifactId=artifactId -Dversion=version -Dfile=本地jar包路径 -DrepositoryId=releases/snapshots -Durl=仓库地址

提交到releases的例子

mvn deploy:deploy-file -DgroupId=com.zlt -DartifactId=zlt-uaa -Dversion=1.1.0 -Dpackaging=jar -Dfile=zlt-uaa.jar -Durl=http://192.168.28.138:8081/repository/maven-releases/ -DrepositoryId=releases

提交到snapshots的例子

mvn deploy:deploy-file -DgroupId=com.zlt -DartifactId=zlt-uaa -Dversion=1.1.0-SNAPSHOT -Dpackaging=jar -Dfile=zlt-uaa.jar -Durl=http://192.168.28.138:8081/repository/maven-snapshots/ -DrepositoryId=snapshots
2.5 指定maven地址下载jar包到本地

在项目的pom.xml中添加上远程仓库地址:


    
           public
           public
           
               true
               always
               warn
           
           
               true
           
           http://192.168.28.138:8081/repository/maven-public/
    

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.1155s