Maven
搭建Maven私服
- 安装 Nexus 服务器
https://help.sonatype.com/repomanager3/product-information/download 上传并解压文件,解压后你可以看到目录 nexus-3.20.1-01-mac,在这个目录下有两个子目录 nexus-3.20.1-01 和 sonatype-work。nexus-3.20.1-01 是程序,sonatype-work 是工作目录,如果以后要备份数据,只要备份 sonatype-work 就行。
- 配置环境变量/启动服务器/停止服务器
在配置有关环境变量之前,要启动 nexus 服务器,你需要打开命令终端,切换到 nexus-3.20.1-01-mac/nexus-3.20.1-01/bin 目录下,再执行启动命令 ./nexus start # 启动服务 ./nexus status # 查看服务状态
- 注
默认端口号8081 可以在安装目录下/etc/nexus-default.properties中修改端口号
- 仓库类型介绍
Repository -> Repositories 下是默认仓库
- maven-central :Type 为proxy,表示代理仓库,用来代理远程仓库--下载组件时,如果代理仓库搜不到,则把请求转发到远程仓库(默认 https://repo1.maven.org/maven2/ ,可以修改),并从远程仓库下载,然后将该组件缓存**到代理仓库,当再次请求该组件时,则直接到代理仓库下载,不会再次请求远程仓库;
修改默认仓库
- maven-releases/maven-snapshots:Type类型为hosted,表示宿主仓库,主要用来部署团队内部使用的内部组件,其中maven-releases用来部署团队内部的发布版组件,maven-snapshots用来部署团队内部的快照版组件。(一般正式版本放在releases,非正式版放在snapshots)
- maven-public:Type类型为group,表示分组仓库,默认将maven-central、maven-releases、maven-snapshots三个仓库组合在一起对外提供服务,简化了maven的配置
使用maven私服
- 下载 ------修改本地maven配置
客户端修改maven安装目录下的settings.xml镜像配置
<mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>maven私服地址+maven库</url> # https://127.0.0.1:8081/repository/maven-public </mirror>
- 上传------修改本地maven配置
- 修改本地maven配置文件
<server> <id>nexus</id> <username>用户名</username> <password>密码</password> </server>
- 修改项目pom文件
<distributionManagement> <repository> <id>maven-public</id> <name>Nexus test</name> <url>http://私服地址:端口号/repository/test-hosted/</>url> </repository> <snapshotRepository> <id>maven-public</id> <name>Nexus test</name> <url>http://私服地址:端口号/repository/maven->snapshots/</url> </snapshotRepository> </distributionManagement>
说明:上面的ID必须和settings.xml配置中的server的id一致
maven项目创建时设置Version为1.0-SNAPSHOT后,deploy部署的时候会将包部署到快照仓库
- 执行mvn deploy命令即可将构建的包存储到本地maven仓库和远程maven私服仓库;
说明:mvn package、mvn install和mvn deploy区别
三个命令均可完成项目编译、单元测试、构建包(jar包、war包或者其他形式的包)功能, mvn package 命令没有将包存储到本地maven仓库和远程maven私服仓库; mvn install 命令将包存储到本地maven仓库,但没有存储到远程maven私服仓库; mvn deploy 命令将包存储到本地maven仓库以及远程maven私服仓库
默认不允许重复deploy发布,如果允许重复deploy则需要修改maven私服仓库配置 (修改为Allow redeploy)
修改pom文件上传到不同maven库
<groupId>com.test</groupId> <artifactId>son</artifactId> <version>1.0-SNAPSHOT</version> # 修改version版本 RELEASE
使用jar包
在pom文件中添加依赖
<dependency> <groupId>com.test</groupId> <artifactId>son</artifactId> <version>1.0-SNAPSHOT</version> </dependency>