首页 > 其他分享 >nexus 的 maven 配置

nexus 的 maven 配置

时间:2022-11-19 22:11:48浏览次数:72  
标签:repository nexus 配置 maven 仓库 snapshot release public

一、仓库类型

  1. proxy 远程仓库的代理,比如说nexus配置了一个central repository的proxy,当用户向这个proxy请求一个artifact的时候,会现在本地查找,如果找不到,则会从远程仓库下载,然后返回给用户。
  2. hosted 宿主仓库,用户可以把自己的一些仓库deploy到这个仓库中
  3. group 仓库组,是nexus特有的概念,目的是将多个仓库整合,对用户暴露统一的地址,这样就不需要配置多个仓库地址。

比如默认生成的 central 仓库,是一个 proxy 类型的仓库,代理的是默认的 maven 中央仓库
image

而默认的 public 仓库则是一个 group 类的仓库
image

二、仓库创建

1. 阿里仓库的代理

image

2. 自己的 release 仓库

image

3. 自己的 snapshot 仓库

image

4. 组合仓库

这里直接利用自动创建的 public 仓库,去掉原有的 release 和 snapshot 仓库,release(s)和snapshot(s)可参考自动生成的那两个仓库名称,我的没加s,懒得处理了
image

三、用户创建

1. 角色

权限略,直接根据已有权限创建角色
image

会发现我们自己创建的仓库也会自动创建相关权限数据,那么具有 group 的仓库的权限是否就获得其内部各仓库的相应权限呢,下面是对 public(release)添加除删除外的权限(我想还去除更新但保留新增不行吗?)和snapshot仓库的全部权限
image

2. 创建一个开发用户

image
创建用户并关联角色,注意密码是用户密码而非邮箱密码
image

四、maven 配置

1. 密码加密

官方说明:https://maven.apache.org/guides/mini/guide-encryption.html
这里的 Master password 是生成密钥的种子?还是什么?

PS C:\Users\??\Desktop\tmp\untitled> mvn --encrypt-master-password
Master password: 
{cK3TV5Ba/wUHu/qCTE/Cs7fTZCo6ZIe8oLCRaQnErN7BO+u/7Xppi4uiCqLETsv4}

在 .m2 目录下创建文件 settings-security.xml,内容如下

<settingsSecurity>
  <master>{cK3TV5Ba/wUHu/qCTE/Cs7fTZCo6ZIe8oLCRaQnErN7BO+u/7Xppi4uiCqLETsv4}</master>
</settingsSecurity>

然后对我们上面的 dev-user 密码进行加密,下面输入的 Password 即为 dev-user 的明文密码,应该是使用上面生成的密钥对明文进行加密

PS C:\Users\??\Desktop\tmp\untitled> mvn --encrypt-password
Password: 
{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}

然后在setting.xml文件中进行配置,主要是 servers 节点(有个疑问,server的id是否需要和下面配置的repository的id一致,应该要一致吧,不然怎么知道访问是使用哪个密码呢)
下面包含了 repository 的设置和 pluginRepository 的设置。

  <servers>
    <server>
      <id>maven-public</id>
      <username>user-dev</username>
      <password>{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}</password>
    </server>
    <server>
      <id>maven-release</id>
      <username>user-dev</username>
      <password>{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}</password>
    </server>
    <server>
      <id>maven-snapshot</id>
      <username>user-dev</username>
      <password>{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}</password>
    </server>
  </servers>

  <profiles>
    <profile>
      <id>maven-repository</id>

      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>

      <repositories>
        <repository>
          <id>maven-public</id>
          <name>maven-public</name>
          <url>http://192.168.31.120:8081/repository/maven-public/</url>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
        </repository>
        <repository>
          <id>maven-release</id>
          <name>maven-public</name>
          <url>http://192.168.31.120:8081/repository/maven-project-release/</url>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
        </repository>
        <repository>
          <id>maven-snapshot</id>
          <name>maven-snapshot</name>
          <url>http://192.168.31.120:8081/repository/maven-project-snapshot/</url>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
          <releases>
            <enabled>false</enabled>
          </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>maven-public</id>
          <url>http://192.168.31.120:8081/repository/maven-public/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

注意:setting.xml 中需要去掉下面的配置,这个默认的镜像拦截

    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>

五、尝试maven项目

IDEA 创建 maven 项目加载后,不知道是否访问了我们的仓库,不知道上面的配置是否生效

  1. 关闭 nexus 的匿名访问
    image

  2. IDEA 创建项目后停止 IDEA 的处理(IDEA右下角),删除本地仓库的数据,使用命令行 mvn -X 的 -X 开启 debug 日志,查看下载是否走配置的私服

  3. nexus 查看是否有依赖数据

标签:repository,nexus,配置,maven,仓库,snapshot,release,public
From: https://www.cnblogs.com/chenxingyang/p/16907336.html

相关文章

  • k8s配置禁止以 root 用户启动容器
    描述通过禁止以root用户启动容器,可以限制容器内进程的可用权限,降低被容器中恶意进程通过root权限入侵/破坏用户应用、主机甚至整个集群的风险。如果确认当前工作负载确......
  • cassandra的连接池配置
    cassandra的连接池配置(转)首先client端驱动https://github.com/datastax/java-drivercassandra的datastax驱动使用的是异步nio实现的,发出去的请求,不会阻塞线程,当有响应的时......
  • 多数据源配置时validationQuery的问题(errorCode 923, state 42000 java.sql.SQLSynta
    起初,数据库配置为:datasource:master:url:jdbc:postgresql://ip:5432/databaseNameusername:**password:**......
  • node 安装配置 及 cnpm 和node 版本不兼容问题
    新电脑回来安装node配置环境 node=>npm=>cnpm=>yarn=>淘宝镜像node下载安装, 一直next到安装成功。刚开始下的16.18的版本,起vue2项目因为node-sass版......
  • Cannot resolve plugin org.springframework.boot:spring-boot-maven-plugin: 解决办
    解决方法一因为这个springboot的插件属于公共的组件,因此,如果maven下载不了,第一反应就是你的镜像有问题,maven的镜像在墙外,有可能访问不到,换成国内镜像,比如阿里云的。在mave......
  • eNSP AC/AP的配置
        ACvlan的创建管理vlan:vlan1:192.168.1.100业务vlan:vlan10:192.168.10.100[AC6005]vlan1//创建vlan1[AC6005-vlan1]q[AC6005]vlan10//创......
  • nginx-config快捷配置项目
    Nginx是我们程序员绕不开的一个堪,对于不太熟悉的程序员来说,每次配置一次nginx都要去搜索一次配置,是不是你?这个开源项目给我们提供了一个可视化配置Nginx的方式,简直就......
  • postgresql安装配置和基本操作
    postgresql安装配置和基本操作1.安装linux上安装最好是centos7.6或者7.8,参考官网PGSQL的官方地址:https://www.postgresql.org/PGSQL的国内社区:http://www.postgres.c......
  • Kafka硬件配置选择
    场景:100万日活(中型公司),每人每天100条日志,每天总共的日志条数是100万*100条=1亿条。其日志处理速度为:1亿条/24小时/60分/60秒≈1157条/每秒钟。 假设每条日志大小......
  • 跟着文档学Fabric:获取通道配置
    原文在这里。1.获取通道配置peerchannelfetchconfigconfig_block.pb-o$ORDERER_CONTAINER-c$CH_NAME--tls--cafile$TLS_ROOT_CA上述命令需要在peer容器中......