前言
- 本篇基于 Nexus 的版本是 nexus-3.55.0-01
- 本方法适用Linux和Windows
- Windows 需要安装Git , 使用Git Bash执行
Nexus上传依赖包的方式
上传依赖包到Nexus 服务器的方式有多种, 包含:
- 单个jar上传: 在Nexus管理台页面上传单个jar
- 源码编译上传: 在源码项目中使用 Maven的deploy 命令发布
- 使用脚本批量上传Maven本地库的目录
1. 单个jar上传: 在Nexus管理台页面上传单个jar
要在 Nexus的Web 控制台上传jar, 需要先登录, 具体步骤如下:
-
登录后点击左侧导航栏的 "Upload"按钮
-
选择需要上传的库, 这里选择maven-releases , 点击需要上传的库
-
选择文件, 输入组名、构件名、版本等
这里以Oracle 12c 的Java驱动 ojdbc8 为例,填入的信息如下:
- 点击完成之后, 点击 "Browser " 按钮就可以看到上传后的包了。
2. 在源码项目中使用 Maven的deploy 命令发布
将项目发布到Nexus 私有服务器, 需要配置maven 的 settings.xml 和本地的pom.xml。
settings.xml 增加如下配置:
<server>
<id>osxm-nexus</id>
<username>admin</username>
<password>123456</password>
</server>
pom.xml配置发布的库的地址
<distributionManagement>
<repository>
<id>osxm-nexus</id>
<name>Osxm Nexus Releases Repository</name>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</repository>
</distributionManagement>
需要注意: server 的 id 和 repository的id 要一致。
成功deploy 之后,在控制台看到的发布的结果如下:
发布项目到Nexus服务器的详细内容, 可以参考:
如何在Maven中发布项目到Nexus私有服务器
3. 使用脚本批量上传Maven本地库的目录
如果需要将Maven本地库的所有jar 一次性导入Nexus , 则使用单次导入的方式势必不太可能。
这里使用Bash脚本可以将Maven 本地库目录的所有jar , 一次性导入到Nexus中。 如果是在Windows环境中, 可以安装Git , 使用Git Bash 执行 sh 脚本。
在Maven的本地库路径下创建文件 mvnimport.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 './mvnimport\.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}/{} ;
Bash切换到Maven的本地库路径,类似:
cd /d/inssoftware/maven-3.9.2/repo
在该目录下执行如下命令:
./mvnimport.sh -u admin -p yourpassword -r http://localhost:8081/repository/maven-releases/