在内网环境中开发时,对maven等我的项目极不敌对,因为不能连贯到Maven地方仓库,所以现有的解决形式是搭建一个maven私库(当然,你要是想把包都通过lib的形式引入也行)。用Nexus搭建完并做完配置后,就失去了一个簇新的maven仓库,一个依赖都没有,比火星还荒凉。
上面有两种办法能够对这片不毛之地进行开垦。
办法一 批量上传
随着业务性能复杂性回升和微服务架构的广泛利用,开发过程中所依赖的第三方包并不像我上大学写作业时一只手就能数过来,工程对应的本地Maven库动辄上百兆,这就须要一个简略快捷的办法将几百个依赖都放到私库上。
- 确保我的项目在本地maven环境下无谬误;
- 进入到本地maven库下
新创建一个sh脚本
#!/bin/bash# copy and run this script to the root of the repository directory containing files# this script attempts to exclude uploading itself explicitly so the script name is important# Get command line params while getopts ":r:u:p:" opt; do case $opt in r) REPO_URL="$OPTARG" ;; u) USERNAME="$OPTARG" ;; p) PASSWORD="$OPTARG" ;; esacdone find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
脚本创立结束
4.在当前目录执行这个脚本,并加上maven私库的账号密码,以及地址
./mavenimport.sh -u admin -p admin -r http://IP:PORT/repository/dataservice/
执行结束后,刷新maven库,就能够看到上传的包了。
我本地maven库占磁盘200M,上传大略破费五分钟左右。
办法二 手动上传
当咱们maven库曾经造成规模,并且仅仅短少一两个依赖的时候,咱们就通过手动上传的形式增加依赖。
- 找到咱们新加的maven库
- 点击进入,点击左上角上传按钮(如果没有这个按钮,请先登录一个有上传权限的账号),当然,左侧菜单中的Upload也能上传,和此处性能一样
3.进入上传页面,咱们通过Browse按钮抉择咱们要上传的jar,比方咱们要上传一个mysql的驱动包。上传之后肯定要留神Classifier,如果有值,手动去除。
上面的Group ID,Artificat ID以及Version都须要手动填写,最初的Generate a POM file with these coordinates肯定要勾选,并填写上面的Packaging,否则这个jar包是不能下载到本地的。对于不晓得Packaging内容的同学,能够到本地仓库里找一下以后jar包对应的pom文件,外面个别都会阐明,若没有则默认写jar。
当然,只有是人,总会出错的,所以尽可能地防止手动输出,咱们在导入jar文件后,再增加一个资产,将pom文件也一起导入,这样就能防止手动输出呈现的谬误。
最初在仓库里查看上传胜利的依赖,查看是否存在pom文件。
最初包都能顺利下载,然而maven插件却非暴力抵制,不能提供下载,于是又在maven的配置中加上了私库地址,并且着重加上了<mirrorOf>central</mirrorOf>这个标签。
这样本地我的项目的依赖和maven插件都恢复正常。
最初想起《火星救济》中的一段台词: