一. 搭建nexus服务
1.下载nexus-3.54.1-01-win64.zip
2.安装nexus
将下载 Nexus 安装包解压到本地磁盘,可获得 nexus-3.49.0-02 和 sonatype-work 2 个目录,如下图。
其中:
nexus-3.49.0-02:该目录中包含了 Nexus 3.x 运行所需要的文件,如启动脚本、依赖 jar 包等。
sonatype-work:该目录中包含了 Nexus 3.x 生成的配置文件、日志文件等。
打开nexus-3.49.0-02/bin 目录,其中nexus.exe就是运行的。当然无法直接点击启动,需要通过命令将服务安装后再进行运行。
使用管理员运行cmd:
安装服务:nexus.exe /install
启动服务:nexus.exe /start
带控制台的启动服务:nexus.exe /run
停止服务:nexus.exe /stop
卸载服务:nexus.exe /uninstall
安装好后在服务当中可以查看自己的nexus服务
启动后访问(启动可能会有点慢,多等一会就可以了):http://localhost:8081/
初始账号是:admin
初始密码在:sonatype-work\nexus3\admin.password中(登录进去会提示让你更改密码的)
紧接着还会提示你这个是否允许匿名访问,这里我建议选择否
在etc目录下有个nexus-default.properties可以配置端口号
具体参考:Nexus下载与安装详解-优快云博客
二. 导入本地仓库到nexus仓库
1. 首先访问http://localhost:8081/并创建好pds-release仓库
2. 编写PowerShell脚本,命名为: upload.ps1
# 配置参数
$nexusUrl = "http://localhost:8081" # Nexus 地址
$repositoryName = "pds-release" # 目标仓库名称
$username = "admin" # Nexus 账号
$password = "119124748" # Nexus 密码
$localRepoPath = "C:\baidunetdiskdownload\rep" # 本地仓库文件夹路径
# 遍历本地仓库文件夹
Get-ChildItem -Path $localRepoPath -Recurse -File | ForEach-Object {
$filePath = $_.FullName
$relativePath = $filePath.Substring($localRepoPath.Length + 1)
# 构建上传 URL(替换路径分隔符为 "/")
$uploadUrl = "$nexusUrl/repository/$repositoryName/$($relativePath.Replace('\', '/'))"
# 使用 curl 上传文件
curl.exe -u "${username}:${password}" --upload-file "$filePath" $uploadUrl
Write-Host "Uploaded: $relativePath"
}
3. 使用管理员身份在 PowerShell 中执行:
Set-ExecutionPolicy Bypass -Scope Process # 临时允许脚本执行
.\upload.ps1
如下图:
4. 去nexus仓库查看,已经上传成功:
三.maven设置,设置setting文件如下:
<server>
<id>pds-release</id>
<username>admin</username>
<password>119124748</password>
</server>
<server>
<id>pds-snapshot</id>
<username>admin</username>
<password>119124748</password>
</server>
<server>
<id>pds-public</id>
<username>admin</username>
<password>119124748</password>
</server>
</servers>
<mirrors>
<mirror>
<id>aliyun-public</id>
<name>aliyun-public</name>
<mirrorOf>!pds-public,*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>pds-dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>pds-public</id>
<name>pds-public</name>
<url>http://localhost:8081/repository/pds-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>central</id>
<name>central</name>
<url>https://repo1.maven.org/maven2/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>jcenter</id>
<name>jcenter</name>
<url>http://jcenter.bintray.com/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
四. 编辑项目中的pom文件如下:
<properties>
<!-- 发布参数 -->
<pds-release.url>http://localhost:8081/repository/pds-release/</pds-release.url>
<pds-snapshot.url>http://localhost:8081/repository/pds-snapshot/</pds-snapshot.url>
<pds-3rd.url>http://localhost:8081/repository/pds-3rd/</pds-3rd.url>
<pds-public.url>http://localhost:8081/repository/pds-public/</pds-public.url>
</properties>
<distributionManagement>
<repository>
<id>pds-release</id>
<name>pds-release repository</name>
<url>${pds-release.url}</url>
</repository>
<snapshotRepository>
<id>pds-snapshot</id>
<name>pds-snapshot repository</name>
<url>${pds-snapshot.url}</url>
<uniqueVersion>true</uniqueVersion>
</snapshotRepository>
</distributionManagement>