Nexus3.x安装及使用(Docker方式一键安装)

文章目录

  • Nexus介绍
  • docker安装Nexus3.x
    • 安装docker
    • 安装Nexus3
    • 登录验证
  • web界面使用
  • 配置阿里云公共仓库
  • Maven配置使用Nexus
    • Maven配置私服下载依赖
      • setting.xml文件配置
      • pom.xml文件配置
    • Maven配置私服下载插件
  • Maven配置私服发布依赖
  • 上传第三方jar

Nexus介绍

Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。除此之外,Nexus还可以管理Docker镜像


通常的做法:本地仓库没有,则去中央仓库下载
Nexus3.x安装及使用(Docker方式一键安装)_第1张图片


搭建私库的做法:本地仓库没有,再去私服下载,私服没有,再去中央仓库下载
Nexus3.x安装及使用(Docker方式一键安装)_第2张图片

docker安装Nexus3.x

安装docker

在我的另一篇文章有说明,直接使用yum安装,非常简单,请移步:
Docker第二篇-Linux和Windows下安装Docker

安装Nexus3

准备好一台虚拟机,执行以下命令:

#创建宿主机挂载目录并设置权限
mkdir -p /usr/local/nexus3/nexus-data
chown -R 200 /usr/local/nexus3/nexus-data

docker run -tid \
-p 8081:8081 \
--name nexus \
-e NEXUS_CONTEXT=nexus \
-v /usr/local/nexus3/nexus-data:/nexus-data sonatype/nexus3

8081:8081表示宿主机端口和容器端口映射
NEXUS_CONTEXT=nexus表示在访问Nexus后台web时,需要带上nexus进行访问,如http://ip:8081/nexus
本地若不存在sonatype/nexus3镜像,则会去下载,下载完毕后直接启动

安装完毕!

登录验证

访问web地址:http://ip:8081/nexus
默认账号为:admin
默认密码在文件中:/usr/local/nexus3/nexus-data/admin.password
Nexus3.x安装及使用(Docker方式一键安装)_第3张图片

web界面使用

  1. Browse可以查看当前有多少仓库,搭建好的Nexus,默认会带有一些maven仓库,一般使用这些仓库就足够了
  2. 默认仓库说明

    maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
    maven-releases:私库发行版jar,初次安装请将Deployment policy设置为Allow redeploy
    maven-snapshots:私库快照(调试版本)jar
    maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用

  3. 仓库类型

    Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots,Central,当然你也可以自己设置。
    Hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
    3rd party:未发布到公网的第三方jar (3.x去除了)
    Snapshots:本地项目的快照仓库
    Releases: 本地项目发布的正式版本
    Proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库
    Central:中央仓库
    Apache Snapshots:Apache专用快照仓库(3.x去除了)

  4. 要想设置各个仓库的参数,参考如下
    Nexus3.x安装及使用(Docker方式一键安装)_第4张图片
    Nexus3.x安装及使用(Docker方式一键安装)_第5张图片

配置阿里云公共仓库

Nexus的maven-group的默认查找方式为:maven-releases --> maven-snapshots --> maven-central,我们在中间再加一个阿里云仓库,加快访问速度。
Nexus3.x安装及使用(Docker方式一键安装)_第6张图片
选择proxy类型
Nexus3.x安装及使用(Docker方式一键安装)_第7张图片
信息填写如下

仓库名字:随便填写
阿里云远程maven仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
其他选项:默认即可

Nexus3.x安装及使用(Docker方式一键安装)_第8张图片
修改maven-public中的仓库引用及顺序:
Nexus3.x安装及使用(Docker方式一键安装)_第9张图片
至此,配置完毕!我们在maven使用maven-public仓库地址的时候,会按照如下顺序访问:本地仓库 --> 私服maven-releases --> 私服maven-snapshots --> 远程阿里云maven仓库 --> 远程中央仓库。
接下来说明maven如何配置使用私服。

Maven配置使用Nexus

Maven配置私服下载依赖

maven配置私服下载有两种方式

  • setting.xml:该文件配置的是全局模式
  • pom.xml:该文件的配置的是项目独享模式
  • 若pom.xml和setting.xml同时配置了,以pom.xml为准

setting.xml文件配置

这个时候不需要再配置pom.xml文件,即可使用私服下载jar依赖包

<mirrors>
	 <mirror>
		
        <id>maven-publicid>
		
        <name>maven-publicname>
		
		<mirrorOf>*mirrorOf>
		
        <url>http://174.12.8.50:8081/nexus/repository/maven-public/url>		
    mirror>
  mirrors>

去工程下载依赖包,发现使用我们自己的私服了
Nexus3.x安装及使用(Docker方式一键安装)_第10张图片
登录Nexus,发现已经有很多jar包了
Nexus3.x安装及使用(Docker方式一键安装)_第11张图片
当然,很有可能你并没有搭建私服,属于个人开发,那么也可以直接配置使用阿里云maven仓库

<mirrors>
	<mirror>
		
        <id>nexus-aliyunid>
		
        <name>nexus-aliyunname>
		
        <url>http://maven.aliyun.com/nexus/content/groups/public/url>
		
		<mirrorOf>centralmirrorOf>
    mirror>
  mirrors>

pom.xml文件配置

如果你配置了pom.xml,则以pom.xml为准

<repositories>
	<repository>
		<id>maven-nexusid>
		<name>maven-nexusname>
		<url>http://174.12.8.50:8081/nexus/repository/maven-public/url>
		<releases>
			<enabled>trueenabled>
		releases>
		<snapshots>
			<enabled>trueenabled>
		snapshots>
	repository>
repositories>

如果没有私服,也可以配置阿里云maven仓库

<repositories>
   <repository>
      <id>maven-aliyunid>
      <url>http://maven.aliyun.com/nexus/content/groups/public//url>
      <releases>
         <enabled>trueenabled>
      releases>
      <snapshots>
         <enabled>trueenabled>
         <updatePolicy>alwaysupdatePolicy>
         <checksumPolicy>failchecksumPolicy>
      snapshots>
   repository>
repositories>

Maven配置私服下载插件

这里直接说pom.xml的配置,如下:

<pluginRepositories>
	<pluginRepository>
	    <id>maven-nexusid>
	    <name>maven-nexusname>
	    <url>http://174.12.8.50:8081/nexus/repository/maven-public/url>
	    <releases>
	        <enabled>trueenabled>
	    releases>
	    <snapshots>
	        <enabled>trueenabled>
	    snapshots>
	pluginRepository>
pluginRepositories>

Maven配置私服发布依赖

第一步,修改setting.xml文件,指定releases和snapshots server的用户名和密码

<servers>
	<server>
		<id>releasesid>
		<username>adminusername>
		<password>admin123password>
	server>
	<server>
		<id>snapshotsid>
		<username>adminusername>
		<password>admin123password>
	server>
servers>

第二步,在项目的pom.xml文件中加入distributionManagement节点
注意:repository里的id需要和第一步里的server id名称保持一致

<distributionManagement>
	<repository>
		<id>releasesid>
		<name>Releasesname>
		<url>http://174.12.8.50:8081/nexus/repository/maven-releases/url>
	repository>
	<snapshotRepository>
		<id>snapshotsid>
		<name>Snapshotname>
		<url>http://174.12.8.50:8081/nexus/repository/maven-snapshots/url>
	snapshotRepository>
distributionManagement>

第三步,执行发布

mvn deploy

登录Nexus,查看对应的仓库已经有相关的依赖包了
Nexus3.x安装及使用(Docker方式一键安装)_第12张图片
注意以下几点:

  • 若项目版本号末尾带有 -SNAPSHOT,则会发布到snapshots快照版本仓库
  • 若项目版本号末尾带有 -RELEASES 或什么都不带,则会发布到releases正式版本仓库

上传第三方jar

Nexus3.x安装及使用(Docker方式一键安装)_第13张图片

你可能感兴趣的:(项目工程工具)