乐趣区

关于maven:Maven私有仓库Nexus3

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 私服
退出移动版