Maven公有仓库-Nexus3

  • 工作中,可能须要封装一些通用的工具类库
  • 然而公司代码较为敏感,个别不能凋谢到公共仓库中
  • 此时能够应用Nexus3搭建公司外部应用的公有仓库
  • 视频版:BiliBili

Demo步骤

  1. 应用docker创立Nexus3服务
  2. 创立我的项目并推送仓库

    • 批改我的项目pom.xml文件配置
    • 批改Maven软件配置
    • 应用"mvn deploy"命令,推送到到仓库
  3. 创立我的项目并援用上一步的我的项目

    • 批改Maven软件配置
    • 重启IDE
    • 应用"mvn install"命令,装置依赖

1. 应用docker创立nexus3服务

  • 应用docker创立nexus3容器

    • 拜访:http://127.0.0.1:8081
    • 较吃资源,启动速度较慢,显示无法访问页面就多等一会儿(电脑渣的可能要个三五分钟,比方我的)
docker run -d -p 8081:8081 --name nexus sonatype/nexus3
  • 获取nexus3明码

    • 点击页面右上角的"Sign in",按弹窗提醒找到默认明码

      • 默认账号:admin
      • 默认明码:容器内的 "/nexus-data/admin.password"
      • 会提醒重置明码,改个记得住的明码(或者用默认明码),前面配置须要用到
  • 如下图,复制"maven-releases"/"maven-snapshots"仓库地址

  • nexus-public是一个仓库分组,默认蕴含以下仓库

    • maven-releases:本地release库
    • maven-snapshots:本地snapshots库
    • maven-central:代理地方maven库,能够改成国内代理,如阿里云(https://maven.aliyun.com/repository/public)

2. 创立我的项目并推送仓库

批改我的项目pom.xml文件配置

  • 间接革新Maven我的项目(或者新建一个Maven我的项目)

    • 执行"mvn package"能打包出jar的我的项目就行
    • 如下在pom.xml增加nexus3地址信息

      • 与dependencies/build同级
    <dependencies>...略</dependencies>    <build>...略</build>    <distributionManagement>        <repository>            <id>maven-releases</id>            <name>maven-releases</name>            <url>${这里填写从nexus页面上复制的maven-releases的url}</url>        </repository>        <snapshotRepository>            <id>maven-snapshots</id>            <name>maven-snapshots</name>            <url>${这里填写从nexus页面上复制的maven-snapshots的url}</url>        </snapshotRepository>    </distributionManagement>
  • 推送包

    • 执行 "mvn deoloy"
    • 此时报错 "...status: 401 Unauthorized",阐明我的项目配置正确

批改Maven软件配置

  • 关上 ${maven根目录}/conf/settings.xml

    • 减少nexus账号密码
    • id要和在我的项目pom.xml中配置的统一
<servers>    <server>        <id>maven-releases</id>        <username>admin</username>        <password>${明码}</password>    </server>    <server>        <id>maven-snapshots</id>        <username>admin</username>        <password>${明码}</password>    </server></servers>
  • 再次执行"mvn deploy"就不会报错了

    • 刷新nexus页面上能够看到上传的包

      • 我的项目版本不带"-SNAPSHOT"在"maven-releases"目录
      • 否则在"maven-releases"目录

3. 创立我的项目并援用上一步的我的项目代码

批改Maven软件配置

  • 关上 ${maven根目录}/conf/settings.xml

    • 启用镜像,如果有其余镜像能够正文掉
  • 重启IDE,pom.xml中像线上的库一样增加dependency即可应用
<mirror>    <id>nexus-public</id>    <mirrorOf>*</mirrorOf>    <name>公有仓库</name>    <url>${这里填写从nexus页面上复制的maven-public的url}</url></mirror>

参考资料

  • docker部署Nexus
  • maven配置nexus私服