`

Docker 搭建maven私服

阅读更多
Docker 镜像docker-nexus3

1.创建data volume,用来持久化容器中的数据,保证容器删除重建后私服中的数据仍然存在
$ docker volume create --name nexus-data


2.启动nexus
$ docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3


3.启动完成后可以通过host的ip:8081访问



其中
  • maven-central是个代理仓库,当我们需要的依赖在私服上不存在时,此仓库会直接从maven中央仓库中下载,并缓存到私服里面
  • maven-public是一个仓库组,里面包含maven- releases和maven- snapshots以及maven-central,我们自己新创建的仓库需要加入到maven-public这个group中,这样使用这个私服的人只用配置一个maven-public的mirror就可以用私服里面的所有依赖
  • maven-releases和maven-snapshots分别对应着发布版和快照版


4.nexus默认用户是 admin/admin123,建议启动后修改密码,创建一个专门给开发人员用的用户,分给可以read、browse所有仓库的权限

5.使用maven私服
为了开发者的所有项目都自动采用搭建好的私服,需要在 .m2目录下追加如下配置文件


<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>public</id>
      <username>dev</username>
      <password>dev222</password>
    </server>
  </servers>

  <mirrors>
    <mirror>
      <id>public</id>
      <mirrorOf>central</mirrorOf>
      <name>internal nexus repository</name>
      <url>http://IP:Port/repository/maven-public/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>jdk-1.8</id>

      <activation>
	<activeByDefault>true</activeByDefault>
	<jdk>1.8</jdk>
      </activation>
      <properties>
	<maven.compiler.source>1.8</maven.compiler.source>
	<maven.compiler.target>1.8</maven.compiler.target>
	<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
    <profile>
	    <id>snapshots</id>
            <activation>
		<activeByDefault>true</activeByDefault>
	    </activation>
	     <repositories>
        	<repository>
             	    <id>public</id>
            	     <url>http://IP:PORT/repository/maven-public/</url>
               	     <releases>
               	       <enabled>true</enabled>
            	     </releases>
               	     <snapshots>
                       <enabled>true</enabled>
                      </snapshots>
       		 </repository>
 	      </repositories>
	</profile>
  </profiles>
</settings>



注意dev是新创建的用户,此用户只有浏览,读取私服上依赖jar包的权限,对于需要上传文件到私服上的用户,需要用下面的配置
在.m2下的setting.xml文件的<servers>tag中追加如下配置段
<server>
      <id>xxxxx-releases</id>
      <username>admin</username>
     <password>admin123</password>
     </server>
     <server>
      <id>xxxxx-snapshots</id>
      <username>admin</username>
     <password>admin123</password>
     </server>

其中xxxx-releases和xxxxx-snapshots是自己新创建的maven仓库,并且设置成可上传模式
上传到私服有两种格式
1.通过pom.xml上传 
在项目对应pom.xml 文件,追加如下配置段
<distributionManagement>
		<repository>
			<id>xxxxx-releases</id>
			<name>xxxxx-releases</name>
			<url>http://IP:Port/repository/xxxxx-releases/</url>
		</repository>
		<snapshotRepository>
			<id>xxxxx-snapshots</id>
			<name>xxxxx-snapshots</name>
			<url>http://IP:Port/repository/xxxxx-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

此处配置的id需要和setting.xml中server的id保持一致,之后就可以在工程目录下执行mvn deploy,将jar发布到私服的仓库中,jar以snapshots结尾的会自动发布到xxxxx-snapshots里面,没有的会直接发布到xxxxx-releases中

2.利用命令行上传第三方jar
mvn -X deploy:deploy-file -DgroupId=com.chengf -DartifactId=test -Dversion=1.0.0 -Dpackaging=jar -Dfile=test.jar -Durl=http://IP:Port/repository/xxxxx-releases/ -DrepositoryId=xxxxx-releases

此处的repositoryId需要和setting.xml中server的id保持一致
  • 大小: 44.9 KB
分享到:
评论

相关推荐

    maven私服搭建.pdf

    附件是自己使用docker在内网和外网搭建Maven私服Nexus3所总结的文档,通过该文档可以在内网搭建属于自己的nexus私服,提高自己的生产力。

    maven私服搭建-nexus的部署

    maven私服搭建-nexus的部署 Maven 私服是指在局域网或 Intranet 中搭建的 Maven 仓库,用于存储和管理项目依赖的 Jar 包。Nexus 是一个流行的 Maven 私服解决方案,提供了强大的仓库管理功能。 在本文中,我们将...

    maven私服nexus-2.11.4-01.rar

    《全面解析:使用Nexus搭建Maven私服》 在软件开发过程中,Maven作为一个强大的构建工具,极大地简化了项目的管理。然而,随着项目的发展,依赖库的数量会不断增多,这时,本地Maven仓库可能无法满足需求,这时就...

    nexus-3.68-java8-win,maven私服搭建

    **Nexus 3 Maven 私服搭建指南** 在软件开发过程中,有效管理和分发依赖库是至关重要的。Nexus 3 是 Sonatype 公司推出的一款强大的仓库管理器,它支持多种类型的仓库,包括 Maven、Docker、npm、yum 和 apt。通过...

    Maven deploy到 nexus(csdn)————程序.pdf

    - **Nexus**:Nexus Repository Manager是一个仓库管理解决方案,支持多种格式的构件存储,如Maven、npm、Docker等。它能帮助开发者高效地管理和分发这些构件。 #### 部署前准备 在进行部署之前,确保具备以下条件...

    某培训结构老师讲解docker教学视频(完整版)

    2. 搭建Docker 6 2.1 环境准备 6 2.2 安装 6 2.3 启动 6 2.4 查看状态 7 2.5 停止 8 2.6 安装一个官方镜像 8 2.7 切换镜像仓库地址 8 3. 使用Docker 9 3.1 Hello world 9 3.2 可视化管理Docker UI 11 3.3...

    nexus-3.16.2-01-unix.tar.gz-Maven私服Nexus安装包(Linux版)

    6. **创建Maven私服**:在Nexus管理界面,你可以创建一个新的仓库类型为“Hosted”的仓库,用于作为Maven私服。配置好仓库ID(如:internal),存储路径,以及其他必要的设置。 7. **配置Maven**:接下来,你需要在...

    jenkins+docker实现自动编译、打包、构建镜像、容器部署

    开发push代码到gitlab,触发jenkins自动pull代码,通过maven编译、打包,然后通过执行shell脚本使docker构建镜像并push到私服(或者阿里云)仓库,此操作完成后jenkins服务器上再执行SSH命令登录到部署服务器,...

    Maven的简单使用

    Nexus是一款流行的Maven私服解决方案,它不仅可以作为Maven仓库,还可以支持其他类型的仓库,如npm、docker等。 #### Nexus私服环境搭建 搭建Nexus私服需要完成以下步骤: 1. 下载并安装Nexus服务。 2. 配置Nexus,...

    Docker Jenkins Git Maven Nexus3持续集成部署

    Docker私服Nexus3的搭建,怎么样利用私服推拉镜像,管理镜像。 什么是持续集成、什么是容器化集成和部署、怎么样安装Jenkins、规避哪些坑、什么是Blue Ocean 什么是流水线技术、什么是Jenkins Piepeline流水线技术、...

    Nexus v3.23.0 私服搭建利器Unix版

    nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问,支持Maven,Docker, NeGet, npm, Bower等私服搭建。

    nexus-3.30.0-01-unix

    描述中的 "linux环境下maven私服搭建nexus3.0" 暗示了我们将讨论如何在 Linux 系统上安装和配置 Nexus 3 作为 Maven 私服。Maven 私服是一种本地仓库,可以用来存储和分发内部项目依赖,减少对外部公共仓库的依赖,...

    nexus私服搭建1

    Nexus是一款功能强大的仓库管理器,尤其在软件开发领域,它为开发者提供了便捷的工具包管理服务,支持包括Bower、Docker、Java、Maven、npm、NuGet、Yum、PyPI等多种软件包管理方式。搭建Nexus私服能够帮助团队更...

    nexus3.19.0-win64.zip

    本文将详细解析“nexus3.19.0-win64.zip”这个压缩包及其相关知识点,帮助你搭建和使用 Maven 私服服务器 Nexus 3 在 Windows 操作系统上。 一、Nexus 3 简介 Nexus 3 是 Nexus 的最新版本,它作为一个中央仓库管理...

    nexus-2.14.1-01-bundle.tar.gz

    然而,对于企业或者团队来说,频繁访问互联网可能不切实际或速度较慢,因此使用Nexus作为内部的Maven私服可以加快依赖的获取速度,同时允许团队管理自定义的或私有不可公开的组件。 "开始会先从maven仓库下载jar包...

    jenkins自动化部署(linux)环境搭建

    jenkins自动化环境搭建,配置 1:jdk安装 2:maven安装配置 3:git安装 4:docker安装,docker私服搭建 5:Jenkins安装配置

    基于gitlab的持续集成环境搭建.pdf

    基于gitlab的持续集成环境搭建.主要内容包括搭建gitlab,maven私服,docker镜像仓库,gitlab-runner,以及微服务集成开发环境的核心项目.

Global site tag (gtag.js) - Google Analytics