Maven 私服搭建

发布时间 2024-01-12 14:36:08作者: 博小群

Nexus 官网 https://help.sonatype.com/repomanager3/product-information/download

进入 nexus-3.21.2-03 文件夹,其中 etc/nexus-default.properties 文件配置端口(默认为 8081)和 work 目录信息,我们可以按需修改
cd nexus-3.21.2-03
cat etc/nexus-default.properties
最后执行如下命令启动服务即可:
cd bin
./nexus start
Nexus 服务的配置
(1)默认仓库说明
maven-central:maven中央库,默认从https://repo1.maven.org/maven2/ 拉取jar
maven-releases:私库发行版jar
maven-snapshots:私库快照(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务。在本地maven基础配置setting.xml或项目pom.xml中使用
(2)仓库类型说明:
group:这是一个仓库聚合的概念,用户仓库地址选择group的地址,即可访问group中配置的,用于方便开发人员自己设定的仓库。maven-public就是Group类型的仓库。内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认为Releases、Snapshots6、Central,当然也可以自己设置
hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
snapashots:本地项目的快照仓库,测试版
releases:本地项目的正式版本
proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下
virtual(虚拟类型): 虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用)
创建仓库
上面对仓库的概率清楚后,我们开始创建新仓库,主要创建3个仓库
proxy仓库 作用是去远程拉取jar包
hosted仓库 作用是存放本地上传的三方jar包
group仓库 作用是将上面来个放到这个组里,进行统一管理
(1)proxy 代理仓库创建
中央仓库的代理默认为https://repo1.maven.org/maven2/ 我们可以更换成阿里云中央仓库。
http://maven.aliyun.com/nexus/content/groups/public/
(2)hosted 仓库创建

host仓库这里了两种不同的存储类型
(3)group仓库

主要就是把上面三个仓库放到该组里,然后让这个组给外面访问。
全家福来一个

nexus私服仓库批量导入本地jar
如图点击顺序

选择maven2(hosted)

按照自身需求填写如下选项

点击Create repository

然后在页面上可以看到我们新建的仓库

点击进入,看到该仓库的URL,记下

在用户的家目录下,新建一个文件夹repo,批量放入我们需要的本地库文件夹
新建shell脚本
脚本内容如下:

!/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"
;;
esac
done
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}/{} ;

赋予脚本可执行权限。
./mavenimport.sh -u admin -p admin123 -r http://你的ip:你的端口/repository/my repo/
注意:如果mavenimport.sh是在Windows编辑后导入Linux的会有问题
使用vi mavenimport.sh进入后底部执行:set ff 看下.sh的格式
什么原因呢, 我们有理由怀疑是文件格式问题? 我们用vim mavenimport.sh进入mavenimport.sh这个文件, 然后在底部模式下, 执行:set ff查看一下, 结果发现fileformat=dos, 看看, 果然是文件格式问题, 那怎么解决呢?
方法一:vim mavenimport.sh进入mavenimport.sh后, 在底部模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。 然后就可以执行./mavenimport.sh运行脚本了。(我亲自试过, 是ok的)
方法二:直接执行sed -i "s/\r//" mavenimport.sh来转化, 然后就可以执行./mavenimport.sh运行脚本了。(我亲自试过, 是ok的)
方法三:直接执行dos2unix mavenimport.sh来转化, 然后就可以执行./mavenimport.sh运行脚本了。(我的linux上执行dos2unix ./mavenimport.sh失败, 但是不要放弃啊, 加个busybox就可以了),

完事再执行下
回车运行就OK了。
以上就是批量导入jar的一个流程,希望能帮助到你,下一篇文章为大家奉上maven连接nexus以及pom文件中如何配置。
String later ="稍后";
String never = "永不";
if(later == never ){
throw new RunTimeException();
} else {
log.info("壮丽明天等着你!!!");
}