描述
-
maven2 私有仓库部署
nexus3部署及使用介绍-参考文档
流程
-
设置阿里云代理仓库
点击设置-》Repository=》Create repository =》然后添加Name和Remote storage URL
http://maven.aliyun.com/nexus/content/repositories/central/
- 修改Maven public (组合仓库)配置,如下图所示
拖动Member repositories,优先级按照上到下顺序
- 配置文件示例
<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--本地仓库地址-->
<localRepository>D:\maven-repository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<!--第一个nexus-wang要和下面的mirror中的id一致,代表拉取是也需要进行身份校验-->
<server>
<id>maven-public</id>
<username>xxxx</username>
<password>xxxxxxxx</password>
</server>
</servers>
<mirrors>
<mirror>
<id>maven-public</id>
<name>internal nexus repository</name>
<!--镜像采用配置好的组的地址-->
<url>https://xxxxxx/repository/maven-public/</url>
<mirrorOf>!internal.repo,*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus-pr</id>
<!-- 远程仓库列表 -->
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Central</name>
<!-- 虚拟的URL形式,指向镜像的URL-->
<url>https://xxxxxx/repository/maven-public/</url>
<layout>default</layout>
<!-- 表示可以从这个仓库下载releases版本的构件-->
<releases>
<enabled>true</enabled>
</releases>
<!-- 表示可以从这个仓库下载snapshot版本的构件 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!-- 插件仓库列表 -->
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Central</name>
<url>https://xxxxxx/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--需要激活 <profile>中的ID才生效-->
<activeProfile>nexus-pr</activeProfile>
</activeProfiles>
</settings>
- pom.xml设置
备注:
maven2根据version是否带有-SNAPSHOT字符判断是否为SNAPSHOT发布的包
mvn deploy 发布,会把release或snapshot包上传到nenux hosted仓库
mvn install 安装,会递归根据pom.xml文件下载所有需要的包,并上传到nenux proxy仓库
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>statisticsV3</groupId>
<artifactId>statistics-source</artifactId>
<version>${project.release.version}</version>
<packaging>jar</packaging>
<name>statisticsServer for weekReport</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<scala.binary.version>2.11</scala.binary.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.release.version>v1.0.0</project.release.version>
<!--SNAPSHOT发布的包,后缀“-SNAPSHOT”-->
<!--<project.release.version>v1.0.0-SNAPSHOT</project.release.version>-->
</properties>
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Development Snapshot Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<distributionManagement>
<!--正式版本-->
<repository>
<!-- nexus服务器中用户名:在settings.xml中<server>的id-->
<id>maven-public</id>
<!-- 这个名称自己定义 -->
<name>Release repository</name>
<url>https://xxxxxx/repository/maven-releases/</url>
</repository>
<!--快照-->
<snapshotRepository>
<!-- nexus服务器中用户名:在settings.xml中<server>的id-->
<id>maven-public</id>
<!-- 这个名称自己定义 -->
<name>Snapshots repository</name>
<url>https://xxxxxx/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 删除错误的jar包
下图是删除snapshot发布的包的示例
点击Server Contents =》Browse =》maven-snapshot =》选中需要删除的包目录名称 =》点击右侧的删除即可
- 设置maven的settings.xml文件
IntealliJ IDEA设置
运行时指定settings.xml
mvn package -f pom.xml -s settings.xml clean install
通过mvn -X 可以查看mvn 加载的配置文件在哪里,然后更改。