上海企业网站设计公司,建筑培训中心,合肥网站建设ahyeda,通过输入域名访问自己做的网站Maven第5篇#xff1a;手把手教你搭建私服
环境
maven3.6.1开发工具ideajdk1.8
本篇内容
私服介绍windows中安装nexus私服linux中安装nexus私服nexus私服中各种仓库详解配置本地Maven从nexus下载构件将本地构件发布到私服的2种方式详解
上一篇文章中有提到了私服#xf…Maven第5篇手把手教你搭建私服
环境
maven3.6.1开发工具ideajdk1.8
本篇内容
私服介绍windows中安装nexus私服linux中安装nexus私服nexus私服中各种仓库详解配置本地Maven从nexus下载构件将本地构件发布到私服的2种方式详解
上一篇文章中有提到了私服我们再来回顾一下私服相关的内容。
私服
私服也是远程仓库中的一种我们为什么需要私服呢
如果我们一个团队中有几百个人在开发一些项目都是采用maven的方式来组织项目那么我们每个人都需要从远程仓库中把需要依赖的构件下载到本地仓库这对公司的网络要求也比较高为了节省这个宽带和加快下载速度我们在公司内部局域网内部可以架设一台服务器这台服务器起到一个代理的作用公司里面的所有开发者去访问这个服务器这台服务器将需要的构件返回给我们如果这台服务器中也没有我们需要的构件那么这个代理服务器会去远程仓库中查找然后将其先下载到代理服务器中然后再返回给开发者本地的仓库。
还有公司内部有很多项目之间会相互依赖你可能是架构组的你需要开发一些jar包给其他组使用此时我们可以将自己jar发布到私服中给其他同事使用如果没有私服可能需要我们手动发给别人或者上传到共享机器中不过管理起来不是很方便。
总体上来说私服有以下好处
加速maven构件的下载速度节省宽带加速项目构建速度方便部署自己的构件以供他人使用提高maven的稳定性中央仓库需要本机能够访问外网而如果采用私服的方式只需要本机可以访问内网私服就可以了
有3种专门的maven仓库管理软件可以用来帮助我们搭建私服
Apache基金会的archiva
http://archiva.apache.org/JFrog的Artifactory
https://jfrog.com/artifactory/Sonatype的Nexus
https://my.sonatype.com/这些都是开源的私服软件都可以自由使用。用的最多的是第三种Nexus本文我们主要以这个来讲解其他2种有兴趣的朋友可以去研究一下。
Windows10中安装Nexus私服
nexus是java开发的所以运行的时候需要有java环境的支持。
安装jdk
安装jdk1.8可以参考Maven系列第2篇安装、配置、mvn运行过程详解这篇文章中有介绍
下载nexus 下面提供两种下载方式官网下载、百度网盘下载百度网盘速度会快一些。 官网和百度网盘中都包含了windows、linux、mac版本nexus安装文件。 建议大家使用网盘中的资源保持和本文环境一致可以避免出错。 nexus下载地址 https://help.sonatype.com/repomanager3/download
解压latest-win64.zip latest-win64.zip解压之后会产生两个文件目录nexus-3.19.1-01和sonatyp-work 启动nexus cmd中直接运行nexus-3.19.1-01/bin/nexus.exe /run 如下
D:\installsoft\maven\nexus\nexus-3.19.1-01\binnexus.exe /run如果输出中出现了下面的异常请忽略
java.io.UnsupportedEncodingException: Encoding GBK is not supported yet (feel free to submit a patch)浏览器中打开
http://localhost:8081/效果如下 登录Nexus 点击上图右上角的Sign in输入用户名和密码nexus默认用户名是admin
nexus这个版本的密码是第一次启动的时候生成的密码位于下面的文件中
安装目录/sonatype-work/nexus3/admin.password登录成功后会弹出一些设置
点击Next设置新的登录密码新密码要保存好
点击Next-Finish完成设置。 其他一些常见的操作
停止Nexus的命令 启动的cmd窗口中按ctrlc可以停止Nexus。
修改启动端口 默认端口是8081如果和本机有冲突可以在下面的文件中修改
nexus-3.19.1-01\etc\nexus-default.propertiesnexus使用java开发的web项目内置了jetty web容器所以可以直接运行。 Linux安装Nexus私服
下载安装包
解压
[roottest1117 nexus]# tar -zvxf latest-unix.tar.gz
[roottest1117 nexus]# ls
latest-unix.tar.gz nexus-3.19.1-01 sonatype-work启动
[roottest1117 bin]# /opt/nexus/nexus-3.19.1-01/bin/nexus start
WARNING: ************************************************************
WARNING: Detected execution as root user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus我上面使用的是root用户操作的为了安全性你们最好自己创建个用户来操作。
开放端口 在/etc/sysconfig/iptables文件中加入下面内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT执行下面命令让上面配置生效
[roottest1117 bin]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service验证效果 访问
http://nexus私服所在的机器ip:8081/出现下面效果表示一切ok。 登录 用户名为admin密码在
/opt/nexus/sonatype-work/nexus3/admin.password登录之后请请立即修改密码。
Nexus中仓库分类
前面我们说过用户可以通过nexus去访问远程仓库可以将本地的构件发布到nexus中nexus是如何支撑这些操作的呢
nexus中有个仓库列表里面包含了各种各样的仓库有我们说的被代理的第三方远程仓库如下图 上图中是nexus安装好默认自带的仓库列表主要有3种类型
代理仓库宿主仓库仓库组
代理仓库
代理仓库主要是让使用者通过代理仓库来间接访问外部的第三方远程仓库的如通过代理仓库访问maven中央仓库、阿里的maven仓库等等。代理仓库会从被代理的仓库中下载构件缓存在代理仓库中以供maven用户使用。
我们在nexus中创建一个阿里云的maven代理仓库来看下过程如下。
Nexus仓库列表中点击Create repository按钮
进入添加页面选择maven2(proxy)这个表示代理仓库
输入远程仓库的信息如下图 第一个红框中输入仓库名称maven-aliyun第二个红框选择Release表示从这个仓库中下载稳定版的构件第三个红框输入阿里云仓库地址https://maven.aliyun.com/repository/public点击底部的Create repository按钮创建完成如下图 宿主仓库
宿主仓库主要是给我们自己用的主要有2点作用
将私有的一些构件通过nexus中网页的方式上传到宿主仓库中给其他同事使将自己开发好一些构件发布到nexus的宿主仓库中以供其他同事使用
上面这2种操作一会稍后会详解以及演示操作过程。
仓库组
maven用户可以从代理仓库和宿主仓库中下载构件至本地仓库为了方便从多个代理仓库和宿主仓库下载构件maven提供了仓库组仓库组中可以有多个代理仓库和宿主仓库而maven用户只用访问一个仓库组就可以间接的访问这个组内所有的仓库仓库组中多个仓库是有顺序的当maven用户从仓库组下载构件时仓库组会按顺序依次在组内的仓库中查找组件查找到了立即返回给本地仓库所以一般情况我们会将速度快的放在前面。
仓库组内部实际上是没有构件内容的他只是起到一个请求转发的作用将maven用户下载构件的请求转发给组内的其他仓库处理。
nexus默认有个仓库组maven-public
点击一下maven-public这行记录进去看一下如下图 上图中第一个红框是这个仓库组对外的一个url我们本地的maven可以通过这个url来从仓库组中下载构件至本地仓库。 第二个红框中是这个仓库组中的成员目前包含了3个仓库第1个是宿主的releases版本仓库第1个是宿主快照版本的仓库第3个是代理仓库maven社区中央仓库的代理。 刚才我们新增的maven-aliyun在左边我们将其也加到右边的仓库成员Members列表然后将maven-aliyun这个仓库放在第3个位置这个仓库的速度比maven-central要快一些能加速我们下载maven构件的速度如下图 配置本地Maven从nexus下载构件
介绍2种方式
方式1pom.xml的方式
本次我们就从nexus默认仓库组中下载构件先获取仓库组对外的地址点击下图中的copy按钮获取仓库组的地址 修改pom.xml加入如下内容 注意下面url的地址为上面复制的地址。 repositoriesrepositoryidmaven-nexus/idurlhttp://localhost:8081/repository/maven-public//urlreleasesenabledtrue/enabled/releasessnapshotsenabledtrue/enabled/snapshots/repository
/repositories由于nexus私服需要有用户名和密码登录才能访问所以需要有凭证凭证需要在settings.xml文件中配置在~/.m2/settings.xml文件的servers元素中加入如下内容
serveridmaven-nexus/idusernameadmin/usernamepasswordadmin123/password
/server注意上面的server-id的值和pom.xml中repository-id的值一致通过这个id关联找到凭证的。 server元素中的username和password你们根据自己的去编辑我这边密码设置的是admin123 方式1示例 创建一个maven项目打开idea点击File-New-Project选择Maven
点击Next输入项目坐标信息
点击Next输入Project name 为maven-chat05
点击Finish创建成功。
配置一下idea的maven环境点击File-Settings如下图 点击上面的OK完成配置。
还原~/.m2/settings.xml的配置到初始状态操作如下
将M2_HOME/conf/settings.xml复制到~/.m2/settings.xml目录如果存在先备份一个然后进行覆盖。 修改上面idea项目中的pom.xml文件内容如下
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.javacode2018/groupIdartifactIdmaven-chat05/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.62/version/dependency/dependenciesrepositoriesrepositoryidmaven-nexus/idurlhttp://localhost:8081/repository/maven-public//urlreleasesenabledtrue/enabled/releasessnapshotsenabledtrue/enabled/snapshots/repository/repositories/project删除本地仓库中以下几个目录
~\.m2\repository\com\alibabamaven-chat05项目目录中打开cmd运行
mvn compile见证奇迹的时刻输出如下
D:\code\IdeaProjects\maven-chat05mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------- com.javacode2018:maven-chat05 --------------------
[INFO] Building maven-chat05 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from maven-nexus: http://localhost:8081/repository/maven-public/com/alibaba/fastjson/1.2.62/fastjson-1.2.62.pom
Downloaded from maven-nexus: http://localhost:8081/repository/maven-public/com/alibaba/fastjson/1.2.62/fastjson-1.2.62.pom (9.7 kB at 5.1 kB/s)
Downloading from maven-nexus: http://localhost:8081/repository/maven-public/com/alibaba/fastjson/1.2.62/fastjson-1.2.62.jar
Downloaded from maven-nexus: http://localhost:8081/repository/maven-public/com/alibaba/fastjson/1.2.62/fastjson-1.2.62.jar (658 kB at 70 kB/s)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) maven-chat05 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) maven-chat05 ---
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.083 s
[INFO] Finished at: 2019-11-13T15:45:4408:00
[INFO] ------------------------------------------------------------------------从输出中可以看出fastjson这个jar包从maven-nexus中下载了下载地址正是我们nexus私服中的那个地址。
方式2镜像方式 关于什么是镜像这里就不再做说明了上篇文章中有介绍可以移步过去看一下仓库详解
镜像的方式主要修改~/.m2/setting.xml文件需要修改2处理。
第1处setting.xml的mirrors元素中加入如下配置
mirroridmirror-nexus/idmirrorOf*/mirrorOfnamenexus镜像/nameurlhttp://localhost:8081/repository/maven-public//url
/mirror上面mirrorOf配置的*说明所有远程仓库都通过该镜像下载构件。 url这个为nexus中仓库组的地址上面方式一中有说过。 第2处由于nexus的url是需要用户名和密码才可以访问的所以需要配置访问凭证在~/.m2/settings.xml文件的servers元素中加入如下内容
serveridmirror-nexus/idusernameadmin/usernamepasswordadmin123/password
/server注意上面的server-id的值和mirror-id的值需要一致这样才能找到对应的凭证。 方式2示例 还是以方式1中的maven项目maven-chat05为例。
修改pom.xml内容如下
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.javacode2018/groupIdartifactIdmaven-chat05/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.62/version/dependency/dependencies/project~/.m2/settings.xml的servers元素中加入下面内容
serveridmirror-nexus/idusernameadmin/usernamepasswordadmin123/password
/server注意上面username、password根据你们自己的进行配置。 ~/.m2/settings.xml的mirrors元素中加入下面内容
mirroridmirror-nexus/idmirrorOf*/mirrorOfnamenexus镜像/nameurlhttp://localhost:8081/repository/maven-public//url
/mirror删除本地仓库中以下几个目录
~\.m2\repository\com\alibabamaven-chat05项目目录中打开cmd运行
mvn compile见证奇迹的时刻输出如下
D:\code\IdeaProjects\maven-chat05mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------- com.javacode2018:maven-chat05 --------------------
[INFO] Building maven-chat05 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom
Downloaded from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom (0 B at 0 B/s)
Downloading from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom
Downloaded from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom (0 B at 0 B/s)
Downloading from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/maven-parent/22/maven-parent-22.pom
Downloaded from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/maven-parent/22/maven-parent-22.pom (0 B at 0 B/s)
Downloading from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/apache/11/apache-11.pom
Downloaded from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/apache/11/apache-11.pom (0 B at 0 B/s)
Downloading from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar
Downloaded from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar (0 B at 0 B/s)
Downloading from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-compiler-plugin/3.1/maven-compiler-plugin-3.1.pom
Downloaded from mirror-nexus: http://localhost:8081/repository/maven-public/org/apache/maven/plugins/maven-compiler-plugin/3.1/maven-compiler-plugin-3.1.pom (0 B at 0 B/s)
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:23 min
[INFO] Finished at: 2019-11-13T16:05:4308:00
[INFO] ------------------------------------------------------------------------输出内容比较多只截取了部分输出从输出中可以看出fastjson这个jar包从mirror-nexus中下载了下载地址正是我们nexus私服中的那个地址镜像的方式起效了是不是感觉很爽哈哈
本地构件发布到私服
经常用到的有2种
使用maven部署构件至nexus私服手动部署第三方构件至nexus私服比如我们第三方发给我们的一个包比如短信发送商的jar包这个包远程仓库是不存在的我们要把这个包上传到私服供所有开发使用。
下面我们来看一下这两种如何操作。
使用maven部署构件至nexus私服
我们创建maven项目的时候会有一个pom.xml文件里面有个version元素这个是这个构件的版本号可以去看一下上面我们刚创建的maven-chat05默认是1.0-SNAPSHOT这个以-SNAPSHOT结尾的表示是个快照版本叫做SNAPSHOT版本快照版本一般是不稳定的会反复发布、测试、修改、发布。而最终会有一个稳定的可以发布的版本是没有-SNAPSHOT后缀的这个叫做release版本。
而nexus私服中存储用户的构件是使用的宿主仓库这个我们上面也有说过nexus私服中提供了两个默认的宿主仓库分别用来存放SNAPSHOT版本和release版本如下图 上图中第1个红框的maven-releases宿主仓库用来存放用户自己release版本的构件。
第2个红框的maven-snapshots宿主仓库用来存放用户snapshot版本的构件。
上面两个仓库的地址可以点击后面的copy按钮获取。
操作分为3步
第一步修改pom.xml配置 我们需要将本地maven项目的构件发布到上面宿主仓库中需要修改项目中pom.xml的配置加入下面内容
distributionManagementrepositoryidrelease-nexus/idurlhttp://localhost:8081/repository/maven-releases//urlnamenexus私服中宿主仓库-存放/下载稳定版本的构件/name/repositorysnapshotRepositoryidsnapshot-nexus/idurlhttp://localhost:8081/repository/maven-snapshots//urlnamenexus私服中宿主仓库-存放/下载快照版本的构件/name/snapshotRepository
/distributionManagement上面2个url分别是上图中两个宿主仓库的地址。
第二步修改settings.xml 上面地址需要登录才可以访问所以需要配置凭证这个需要在~/.m2/settings.xml中进行配置在这个文件的servers元素中加入
serveridrelease-nexus/idusernameadmin/usernamepasswordadmin123/password
/serverserveridsnapshot-nexus/idusernameadmin/usernamepasswordadmin123/password
/server注意上面第1个server-id的值需要和pom.xml中的distributionManagement-repository-id的值一致。 第2个server-id的值需要和pom.xml中的distributionManagement-snapshotRepository-id的值一致。 第三步执行mvn deploy命令 执行这个命令的时候会对构件进行打包然后上传到私服中。
这命令的原理后面的文章中会具体介绍。
示例效果 我们来感受一下效果。
按照上面的配置修改maven-chat03/pom.xml文件和本地的~/.m2/settings.xml文件。
maven-chat05项目目录中打开cmd运行
mvn deploy见证奇迹的时刻输出如下
D:\code\IdeaProjects\maven-chat05mvn deploy
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------- com.javacode2018:maven-chat05 --------------------
[INFO] Building maven-chat05 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) maven-chat05 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) maven-chat05 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) maven-chat05 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\code\IdeaProjects\maven-chat05\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) maven-chat05 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) maven-chat05 ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) maven-chat05 ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) maven-chat05 ---
[INFO] Installing D:\code\IdeaProjects\maven-chat05\target\maven-chat05-1.0-SNAPSHOT.jar to C:\Users\Think\.m2\repository\com\javacode2018\maven-chat05\1.0-SNAPSHOT\maven-chat05-1.0-SNAPSHOT.jar
[INFO] Installing D:\code\IdeaProjects\maven-chat05\pom.xml to C:\Users\Think\.m2\repository\com\javacode2018\maven-chat05\1.0-SNAPSHOT\maven-chat05-1.0-SNAPSHOT.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) maven-chat05 ---
Downloading from snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/1.0-SNAPSHOT/maven-metadata.xml
Uploading to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/1.0-SNAPSHOT/maven-chat05-1.0-20191113.083820-1.jar
Uploaded to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/1.0-SNAPSHOT/maven-chat05-1.0-20191113.083820-1.jar (1.8 kB at 11 kB/s)
Uploading to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/1.0-SNAPSHOT/maven-chat05-1.0-20191113.083820-1.pom
Uploaded to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/1.0-SNAPSHOT/maven-chat05-1.0-20191113.083820-1.pom (1.2 kB at 10 kB/s)
Downloading from snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/maven-metadata.xml
Uploading to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/1.0-SNAPSHOT/maven-metadata.xml
Uploaded to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/1.0-SNAPSHOT/maven-metadata.xml (772 B at 9.2 kB/s)
Uploading to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/maven-metadata.xml
Uploaded to snapshot-nexus: http://localhost:8081/repository/maven-snapshots/com/javacode2018/maven-chat05/maven-metadata.xml (286 B at 3.4 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.156 s
[INFO] Finished at: 2019-11-13T16:38:2008:00
[INFO] ------------------------------------------------------------------------输出内容中有Uploading to snapshot-nexus、Uploaded to snapshot-nexus snapshot-nexus正是我们在pom.xml配置的快照版本的地址上面输出内容中有具体的地址和快照的地址也是一样的上传成功了。
我们去nexus私服中看一下访问nexus私服中快照版本仓库的地址
http://localhost:8081/repository/maven-snapshots/出现如下页面 点击上面的bowse连接如下图我们的构件上传成功了 如果其他同事需要使用上面这个构件只需要点击下图中的pom文件右边会显示构件的坐标然后可以拿去使用了如下图 上面是将快照版本的发布到了nexus私服的快照宿主仓库了下面我们再来操作一下将release稳定版本的发布到nexus私服如下
修改pom.xml文件的版本号将-SNAPSHOT后缀去掉去掉之后表示是release版本的了如下
version1.0/versioncmd命令中执行
mvn deploy输出
D:\code\IdeaProjects\maven-chat05mvn deploy
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------- com.javacode2018:maven-chat05 --------------------
[INFO] Building maven-chat05 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) maven-chat05 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) maven-chat05 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) maven-chat05 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\code\IdeaProjects\maven-chat05\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) maven-chat05 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) maven-chat05 ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) maven-chat05 ---
[INFO] Building jar: D:\code\IdeaProjects\maven-chat05\target\maven-chat05-1.0.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) maven-chat05 ---
[INFO] Installing D:\code\IdeaProjects\maven-chat05\target\maven-chat05-1.0.jar to C:\Users\Think\.m2\repository\com\javacode2018\maven-chat05\1.0\maven-chat05-1.0.jar
[INFO] Installing D:\code\IdeaProjects\maven-chat05\pom.xml to C:\Users\Think\.m2\repository\com\javacode2018\maven-chat05\1.0\maven-chat05-1.0.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) maven-chat05 ---
Uploading to release-nexus: http://localhost:8081/repository/maven-releases/com/javacode2018/maven-chat05/1.0/maven-chat05-1.0.jar
Uploaded to release-nexus: http://localhost:8081/repository/maven-releases/com/javacode2018/maven-chat05/1.0/maven-chat05-1.0.jar (1.7 kB at 9.6 kB/s)
Uploading to release-nexus: http://localhost:8081/repository/maven-releases/com/javacode2018/maven-chat05/1.0/maven-chat05-1.0.pom
Uploaded to release-nexus: http://localhost:8081/repository/maven-releases/com/javacode2018/maven-chat05/1.0/maven-chat05-1.0.pom (1.2 kB at 12 kB/s)
Downloading from release-nexus: http://localhost:8081/repository/maven-releases/com/javacode2018/maven-chat05/maven-metadata.xml
Uploading to release-nexus: http://localhost:8081/repository/maven-releases/com/javacode2018/maven-chat05/maven-metadata.xml
Uploaded to release-nexus: http://localhost:8081/repository/maven-releases/com/javacode2018/maven-chat05/maven-metadata.xml (304 B at 4.3 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.646 s
[INFO] Finished at: 2019-11-13T16:48:4408:00
[INFO] ------------------------------------------------------------------------输出中有release-nexus说明使用了pom.xml中的distributionManagement-repository-id的值上传地址是http://localhost:8081/repository/maven-releases。
打开nexus私服中release地址
http://localhost:8081/repository/maven-releases/点击上面的browse连接如下 成功了。
手动部署构件至nexus私服
操作步骤 手动上传只支持发布稳定版本的构件操作过程如下图
登录nexus按照下图的步骤依次点击 图中第一行maven-releases宿主仓库就是存放用户自己构件的仓库点击上图中列表中的第一行进入上传页面如下图 上面页面中点击Browse选择本地的构件然后输入其他坐标信息点击Upload完成上传操作。
示例效果 我们把maven-chat05\target\maven-chat05-1.0.jar上传上去如下 点击Upload完成上传操作。
访问如下地址
http://localhost:8081/#browse/browse:maven-releases可以看到上传好的构件如下图