记一次内网maven私服初始化方法

背景

  1. 纯内网环境,无法连互联网
  2. 待初始化maven私服在内网,无法通过配置代理完成初始化
  3. 通过nexus部署私服,初始化maven依赖和npm依赖
初始化思路
  1. 通过nexus管理端上传组件功能上传组件,支持maven组件和npm组件
  2. 通过maven插件命令行指令上传组件,仅能上传maven组件
  3. 通过nexus的api接口上传组件,支持maven组件和npm组件
其中前两个思路适用于少量组件需要上传的情况,若需要上传的组件成百上千个,则建议要么想办法打通网络通过网络初始化,要么使用程序循通过api批量上传 。
通过 nexus 管理端功能上传组件使用有权限的账户登录 nexus 后在仓库页的左侧菜单里选择【Upload】功能上传组件,无论是maven组件还是npm组件只能上传到 hosted 类型的仓库中 。
1、maven组件可上传的文件有jar、pom
2、npm组件可上传的文件是 tgz 文件
3、这个功能仅支持上传 Release 版本的依赖,nexus3 会根据上传文件的版本判断是否符合要求,比如版本号带有 SNAPSHOT 标识,则认为是快照版,不允许上传

记一次内网maven私服初始化方法

文章插图
 

记一次内网maven私服初始化方法

文章插图
上传maven依赖

记一次内网maven私服初始化方法

文章插图
 
1、同时上传 jar 和 pom 文件
分别浏览两个文件,点击 Browse 按钮,分别选择要上传的 jar 和 pom文件,当 pom 文件选择完之后,Component coordinates 区域会自动取消(即此时 nexus 自动从 pom 文件中提取相关内容) 。
2、仅上传 pom 文件
【记一次内网maven私服初始化方法】当需要上传的是类似父模块的时候,这种情况不存在 jar,只有 pom 文件,选中 pom 后,Components coordinates 区域同样会自动取消 。
3、仅上传 jar 文件
当仅上传 jar 文件时,需要填写 Components coordinates 对应的信息,即 Group ID、Artifact ID、Version,这种情况基本遇不到 。
命令行通过 maven 命令上传
1、在 maven 配置文件中配置具有上传权限的用户信息,也可以给匿名用户临时赋管理员权限(这有风险,万一用完后忘了收回呢)
2、确保maven依赖的插件在本地仓库里是存在的,否则命令无法正常执行
在settings.xml中配置用户信息,用户名密码根据实际情况配置
<servers><server><id>local-nexus3</id><username>admin</username><password>admin123</password></server></servers>注意:若需要上传的 jar 、pom 文件在本地仓库里,先将文件从本地仓库复制到其他目录,否则会上传失败
1、同时上传 jar 和 pom
mvn -s /path/to/settings.xml deploy:deploy-file -Durl=http://localhost:8080/repository/maven-snapshots -DrepositoryId=local-nexus3 -Dfile=XXX.jar -DpomFile=XXX.pom-s:指定maven使用的配置文件
-Durl:maven 仓库地址,注意仓库类型 Release、Snapshot、Mixed
-Dfile:要上传的jar文件
-DpomFile:与jar文件对应的pom文件
-DrepositoryId:仓库id,给maven工具使用的,主要是用来获取上边 server 里配置的用户信息,这个值要跟 server 里配置的 id 里的值一样
2、仅上传 pom
mvn -s /path/to/settings.xml deploy:deploy-file -Durl=http://localhost:8080/repository/maven-snapshots -DrepositoryId=local-nexus3 -Dfile=XXX.pom -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.0.0-SHAPSHOT -Dpackaging=pom
--Dfile为对应的pom文件
groupId、artifactId、packaging、version的值从pom文件中复制
3、仅上传 jar
mvn -s /path/to/settings.xml deploy:deploy-file -Durl=http://localhost:8080/repository/maven-snapshots -DrepositoryId=local-nexus3 -Dfile=XXX.jar -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.0.0 -Dpackaging=jar
若上传失败,可以增加 -e 和 -X 参数,查看输出的日志信息,一般是因为缺少 maven 依赖
通过rest api接口上传
api接口文档在:管理员账号登录--》设置--》System--》API,组件相关接口查看Components 里的内容

记一次内网maven私服初始化方法

文章插图
 

记一次内网maven私服初始化方法


推荐阅读