nexus3 配置
Repository > Repositories
- 添加一个新的存储库
- 选择 maven2 (proxy)
- 输入以下项(其他使用默认值)
- Name
maven-central
- Remote store
https://maven.aliyun.com/repository/public
- Name
Security > Roles
添加一个新的 Role
- 类型选择
Nexus role
- ID 设为
publish
- Privileges 添加以下项:
nx-repository-view-*-*-add
nx-repository-view-*-*-edit
- Roles 添加以下项:
nx-anonymous
Security > Users
添加一个 User
- ID 设为
publish
- Roles 添加以下项:
publish
System > Tasks
- 创建任务
Admin - Compact blob store
- 创建任务
Docker-Delete incomplete uploads
maven
仓库镜像
修改 settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>central,public</mirrorOf>
<url>http://repo.lan.cn/repository/maven-public/</url>
</mirror>
</mirrors>
</settings>
发布到私库
- 修改 settings.xml
servers > server > id 与 pom.xml 中 distributionManagement > repository > id 相匹配。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>central,public</mirrorOf>
<url>http://repo.lan.cn/repository/maven-public/</url>
</mirror>
</mirrors>
<servers>
<!-- 发布 release -->
<server>
<id>releases</id>
<username>publish</username>
<password>publish</password>
</server>
<!-- 发布 snapshot -->
<server>
<id>snapshots</id>
<username>publish</username>
<password>publish</password>
</server>
</servers>
</settings>
- 修改 pom.xml
<project>
...
<distributionManagement>
<!-- 发布 release -->
<repository>
<id>releases</id>
<url>http://repo.lan.cn/repository/maven-releases/</url>
</repository>
<!-- 发布 snapshot -->
<snapshotRepository>
<id>snapshots</id>
<url>http://repo.lan.cn/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>
- 发布
通常 nexus 的 releases 库不允许重新发布,snaphost 库允许重新发布。因为开发阶段会反复提交,所以通常会配置发布到 snapshots 库。
发布 snapshot 时,pom
version
要有-SNAPSHOT
。module 中的 pom 修改关联version
,parent 等该加-SNAPSHOT
的都加上。modules 的 pom 会自动继承,如果其 pom 中没有
version
属性,代表使用根目录 pom 中的设置。
# 整体项目
mvn deploy
# 单个 module
mvn deploy -pl subproject
引入私库
- 方法1:修改 settings.xml
<settings>
...
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>nexus-public</id>
<name>Nexus Public Repository</name>
<url>http://repo.lan.cn/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
...
</settings>
- 方法2:修改 pom.xml
<project>
...
<repositories>
<repository>
<id>public</id>
<url>http://repo.lan.cn/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
...
</project>
关联阅读:利用 nexus 布署私有 npm 仓库