https://help.sonatype.com/repomanager3
类似于Maven仓库上的搜索功能,就是从私服上查找包,支持模糊搜索的
顾名思义就是上传jar包到私服中,可以选择其中一个hosted仓库。
注意:通过页面直接上传的方式只是上传了jar包,若这个jar通过Maven依赖了其他jar,那其他项目在下载这个jar时无法取得它的依赖。所以,除非这个jar没有任何依赖,否则还是推荐通过命令行或者IDE的方式上传jar包,这样才会把pom一并上传。
在右上角点击“Sign In”的登录按钮,输入admin/admin123,登录成功之后,即可看到此功能,如图所示:
仓库分为三种:Proxy、hosted、group
【Proxy】
代理仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。
这样的优势只要其中一个人从中央库下来了,以后大家都是从Nexus私服上进行下来,私服一般部署在内网,这样大大节约的宽带。
创建Proxy的具体步骤
【Hosted】
Hosted是宿主机的意思,用于将第三方的Jar或者我们自己的jar放到私服上。
Hosted有三种方式,Releases、SNAPSHOT、Mixed
Releases: 一般是已经发布的Jar包
Snapshot: 未发布的版本
Mixed:混合的
Hosted的创建和Proxy类似,类型需选择maven2(hosted)。
注意:Deployment Pollcy,我们需要把策略改成“Allow redeploy”,以允许重复发布覆盖同版本的jar包。
【Group】
能把多个仓库合成一个仓库来使用,把上几步创建的代理仓库和宿主仓库都加入到“maven-public”仓库组中:
文件存储的地方,创建一个目录的话,对应文件系统的一个目录,如图所示我已经创建了两个额外的存储块:
Nexus是基于权限做访问控制的,服务器的每一个资源都有对应的权限来控制,因此用户执行特定的操作时就必须拥有必要的权限。管理员必须以角色的方式将权限赋予Nexus用户。用户可以被赋予一个或者多个角色,角色可以包含一个或多个权限,角色还可以包含一个或者多个其他角色
包含用户、角色、权限的配置。
包含日志及数据分析。
包含API(Nexus这个API文档貌似是用swagger做的)、邮件服务器,设置调度任务等。
2.1 首先访问 Nexus 页面,登录后点击“Create repository”按钮新建一个仓库。
2.2 选择 maven2(hosted),按照自身需求填写如下选项(仓库名随意):
2.3 在服务器 /home 目录下,新建一个文件夹 repo,批量放入我们需要的本地库文件夹:
2.4 在 repo 文件夹下执行如下命令创建一个 shell 脚本:
vi mavenimport.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"
;;
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}/{} ;
2.5 保存退出后执行如下命令
#赋予其执行权限:
chmod +x mavenimport.sh
#jar 包都导入到指定仓库中
./mavenimport.sh -u admin -p 123 -r http://192.168.60.133:8081/repository/my_repo/
#注意:命令中 Nexus 用户名、用户密码、仓库地址根据实际情况进行修改。
2.6 访问 Nexus 控制台页面,可以发现确实都上传成功了:
nexus 安装目录
├── LICENSE.txt
├── NOTICE.txt
├── bin 此目录包含nexus的启动脚本和与启动相关的配置文件,其中的nexus文件是nexus的启动文件。
├── deploy
├── etc 配置文件目录。
├── lib 依赖库目录。
├── public 公共资源目录。
├── system 此目录包含构成nexus的所有组件和插件。
sonatype-work 数据目录
├── nexus3
│ ├── blobs 没有使用绝对路径定义的所有基于文件系统的blob存储的父目录。
│ ├── cache 此目录包含当前缓存的karaf软件包的信息。
│ ├── db 此目录包含OrientDB数据库,是repository manager元数据的主要存储。
│ ├── elasticsearch 此目录包含elasticsearch的当前配置状态。
│ ├── etc 此目录包含了repository manager的主要运行时的配置。在配置运行时环境中这些文件被进一步补充说明了。
│ ├── generated-bundles
│ ├── instances
│ ├── karaf.pid
│ ├── health-check
│ ├── keystores 用于识别repository manager自动生成的秘钥。
│ ├── lock
│ ├── log 日志文件存放的目录。
│ ├── orient
│ ├── port
│ ├── restore-from-backup
└── └── tmp 临时存储目录。
原文:https://www.cnblogs.com/liuyitan/p/13177680.html