9. 从零开始学springboot-包管理神器-maven私库的安装和使用

介绍

maven,java包管理的神器,功能类似于php的composer,node的npm。

背景

maven的便捷使用过的人都知道,不过针对国内环境,下载的速度你懂的。另外,针对比较保密的jar包,上传到公共库显然是不合适的,为此,maven私有库便体现出它的价值。简而言之,在局域网内搭建个中心仓库,用以存放/缓存jar包,这样,开发人员就无需外网下载资源。提升速度和安全性。节约了外网流量。

安装

博主环境

win10 64

apache-maven-3.6.0

Nexus Repository Manager OSS 3.x - Windows

maven

安装配置参考

2.从零开始学springboot-开发环境配置

Nexus 安装(20200805 更新 docker安装,推荐)

下载最新Nexus镜像

docker pull sonatype/nexus3

生成容器

docker run -d -p 8081:8081 --name nexus sonatype/nexus3

稍微等待一会(启动需要时间)

而后访问

http://localhost:8081/

注意, 最新的Nexus默认密码已不是admin123了, 我们需要进入容器查看下

docker exec -it nexus /bin/bash
cd nexus-data/
cat admin.password

复制出密钥串登陆即可, 登陆后会提示修改新密码

Nexus 安装(安装包安装)

下载地址 https://www.sonatype.com/download-oss-sonatype
解压(博主:C:\nexus)
cmd切换到C:\nexus\bin目录后执行

nexus.exe/run
1.png

等待一会,出现


2.png

成功
注意,可能出现端口占用的错误,此时不用急ctrl+c结束安装过程,我们修改下配置文件的端口


3.png

重新运行nexus.exe/run即可

打开浏览器访问http://localhost:8090/

4.png

点击右上方的"sign up",输入默认生成的账号admin和密码admin123登录

Nexus配置

点击上方小齿轮创建一个叫demo的仓库(博主已经创建了,所以截图里有)


5.png
6.png
7.png

配置demo仓库到maven-public,这样统一由maven-public对外提供服务


8.png
9.png

仓库创建完毕后我们创建一个用户(demo,123456)


10.png
11.png

至此私有库基本配置完毕

私有仓库的使用

打开maven的配置文件录入私有仓库的账号和密码


14.png
15.png

接下来我们上传jar包到私有仓库demo

博主使用IDEA开发,所以直接使用它创建了一个demo项目(内容随意)

pom.xml增加发布设置

    <!--DistributionManagement发布管理节点-->
    <distributionManagement>
        <!--测试版仓库-->
        <snapshotRepository>
           <!--注意, 这里的设置要和maven setting.xml中一致-->
            <id>demo</id>
            <name>demo</name>
            <url>http://127.0.0.1:8090/repository/demo/</url>
        </snapshotRepository>
    </distributionManagement>

IDEA点击上传(简单, 推荐)


image.png

或者也可以执行命令行上传(此方式需要先编译包)


12.png
13.png

直接在IDEA的teiminal执行

mvn deploy:deploy-file -DgroupId=com.demo -DartifactId=demo -Dversion=0.0.1 -Dpackaging=jar -Dfile=D:\demo2\demo-0.0.1-SNAPSHOT.jar -Durl=http://localhost:8090/repository/demo/ -DrepositoryId=demo
16.png

标红部分记得替换为自己的路径。
得到如下信息上传成功


17.png

此时登录nexus查看


18.png

至此,私有库的上传成功。
关于私有库的引用就简单多了,直接打开项目的pom.xml:加入以下配置即可:

<dependency>
    <groupId> com.demo</groupId>
    <artifacId>demo</artifacId>
    <version> 0.0.1</version>
</dependency>
    <repositories>
        <repository>
            <id>demo</id>
            <name>demo</name>
            <url>http://127.0.0.1:8090/repository/maven-public/</url>
            <!--告诉Maven可以从这个仓库下载releases版本的构件-->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!--告诉Maven不要从这个仓库下载snapshot版本的构件-->
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

包的dependency信息可以在


20.png

找到
repository信息可以在


21.png

请关注我的订阅号

订阅号.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 11,405评论 0 25
  • 前言   什么是maven、gradle?   Maven是一个项目管理和自动构建工具。  Gradle是一个基于...
    Haraway阅读 9,767评论 1 9
  • 首先私服是一种衍生出来的特殊的Maven远程仓库,构建私服的好处请看3.5私服 可以帮助大家建立私服的仓库管理软件...
    zlcook阅读 13,622评论 0 32
  • ROYA梁阅读 708评论 0 1
  • 天缀小湖幽山涧, 踪勤芳径水旁环。 泉携落花窅然去, 弗疑桃园藏此山。 小湖盈虚几道弯, 日映云天夜月涵。 两只水...
    傲视五洲阅读 2,662评论 0 0