Docker 和 Nexus 搭建私有 Maven 仓库

使用 Docker 启动 Nexus

# 创建存储数据的目录

    mkdir -p /opt/module/data

# 修改目录权限,否则 nexus 启动时会报错没有权限

    chown -R 755 /opt/module/data

# 启动

  docker run -d -p 8081:8081 -v /opt/module/data:/nexus-data --name nexus sonatype/nexus3

# 注: Nexus3 初始密码不再是admin123

获取admin登录密码方法:

  cat /opt/module/data/admin.password

 

配置 Nexus

Nexus 默认创建了四个 Maven 仓库,因此不需要手动去创建。

在 Administration >> Repository >> Repositories 页面可以看到仓库列表:

仓库名称类型格式说明
maven-central proxy maven2 中央仓库
maven-releases hosted maven2 正式版仓库
maven-snapshots hosted maven2 测试版仓库
maven-public group maven2 仓库组,集合了其他三个仓库

关闭匿名访客权限

默认情况下匿名访客时可以看到仓库列表的,为了不泄露信息,需要关闭其访问权限。

在 Administration >> Security >> Anonymous 页面,取消打勾 Allow anonymous users to access the server 并保存。

新建角色和用户

系统默认的 admmin 账户权限太大,一般建议新建一个普通账户,并授予有限的权限。首先在 Administration >> Security >> Roles 页面新建一个角色,并授予以下的权限:

nx-repository-view-*-*-browse
nx-repository-view-maven2-*-*

接着新建一个用户,授予该角色权限。

配置 Maven 并发布

修改文件 ~/.m2/settings.xml,增加:

<server>
  <id>nexus-release</id>
   <username>admin</username>
   <password>密码</password>
</server>
<server>
  <id>nexus-snapshots</id>
  <username>admin</username>
   <password>密码</password>
</server>

 

pom.xml配置

<distributionManagement>
<repository>
   <id>nexus-release</id>
   <name>user release resp</name>
    <url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
   <id>nexus-snapshots</id>
   <name>user snapshots resp</name>
    <url>http://localhost:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

 

然后执行 mvn deploy 部署项目,

如果控制台打印出 BUILD SUCCESS 则表示发布成功

 击IDEA中的deploy

 

posted @ 2020-06-14 14:33  时间都哪去了  阅读(313)  评论(0编辑  收藏  举报