Maven安装及独立镜像服务器Nexus搭建
Maven安装及独立镜像服务器Nexus搭建
1. 写在前面
本文介绍Maven的安装(包括windows下与Linux下),以及基本使用的方法,包括修改Maven镜像,搭建Maven私服(Nexus,本文只讲述于Linux下安装的方法),以及向镜像服务器提交我们的代码(使用IDEA提交代码与命令行提交代码),包括稳定版与开发版的提交方式。本博文中提到的相关知识点经过博主实践得到,在实践过程中出现问题博主可以解答问题缘由。
2. Maven安装
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
上述内容参照自 https://www.yiibai.com/maven/,对于Maven,相信做开发的人或多或少都接触到了,使用Maven我们可以更加方便的进行依赖包管理,通过简单的配置即可引用各种代码包,对我们的开发提供了巨大的助力。而对于一个团队或一个企业,会有大量的开发完成的公共功能被其他项目引用,这时,就需要本文所讲述的Maven私服来提供一个独立的镜像环境地址。在下文将继续说明。
2.1 在Windows下安装
Maven安装包下载:apache-maven-3.6.3-bin.tar.gz
Maven的安装并不难,只需要下载相应的压缩包,直接解压到我们需要的环境即可,这里详细说一下在Windows下进行环境配置的问题。我们想要让我们的Maven全局生效,可以方便的通过命令语句运行各种命令,我们需要配置相应的环境变量。当然,要想运行Maven,我们需要Java环境,Java环境的安装可以参照这批篇博文:JDK安装及环境配置。
按照上图所示,进行环境配置配置完成之后进行环境的测试,打开cmd控制台,运行下列语句:
mvn -version
如果环境没有问题,会出现下面的结果:
如果没有出现上述类似语句,则环境没有被配置好,需要再次进行配置,检查自己的配置信息。Maven安装及环境配置就说到这里。
2.2 在Linux下安装
Maven安装包下载:apache-maven-3.6.3-bin.tar.gz
在Liunx安装Maven实际上操作也很简单,但是首先也是需要有Java环境,在Linux下安装Java环境可以参照这篇博文:JDK安装及环境配置。
这里以CentOS操作系统作为案例说明,首先下载压缩包,放置于linux中,这里我将压缩包存储在 /home中,运行下列语句:
cd /home
tar -zxvf apache-maven-3.6.3-bin.tar.gz /usr/local/maven
将安装包解压到 /usr/local/maven中,接下来配置环境,在 /etc/profile内配置环境,执行下列语句:
vim /etc/profile
将下列语句添加到profile中:
export MAVEN_HOME=/usr/local/maven #这里使用你解压的路径
export PATH=${PATH}:${MAVEN_HOME}/bin
配置完成后执行下列语句:
source /etc/profile #使配置文件生效
上述操作要求会使用vim编辑器,如果不会使用可以百度一下如何在vim中编辑本文。
上述操作完成后,运行下列语句检查版本信息:
mvn -version
当出现版本信息即为安装成功。
2.3 配置镜像环境
使用Maven可以方便我们的包管理,但是下载各种环境包时,如果使用Maven默认的中央镜像其下载速度是不太友好的,我们一般会配置阿里的中央镜像作为镜像使用,会加快我们环境包的下载速度。
打开配置文件(linux 与 Windows下一致,conf 下 settings.xml),这里讲解下配置文件中的一些配置信息:
配置本地存储地址:
<localRepository>D:\repository</localRepository>
环境镜像配置在mirrors内部进行配置,这里直接给出镜像环境:
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
修改完成之后可以打开一个Maven项目测试一下下载的速度,应该是有很大的改观。
镜像环境配置就讲述到这里,按照操作后如果还是有问题,可以在下方留言,博主会尽快解答。
3. Nexus安装及配置
Nexus可以在部署之后,管理我们的依赖包,我们可以将开发完善的功能上传到私服中供其它模块调用,在企业中,建立私服可以有效控制我们的环境包,方便我们的开发,并且在局域网内进行部署,可以保护我们的环境包资源。
3.1 Nexus安装
这里博主推荐的Nexus安装跟Maven的安装同样的简单,这里先提供一下Nexus的下载资源:
Nexus下载地址:nexus-3.20.0-04-unix.tar.gz
下载完成后,解压压缩包到我们需要的地址下:
tar -zxvf nexus-3.20.0-04-unix.tar.gz /usr/local/nexus
cd /usr/local
ls -l
执行完上述命令后,即可看到路径下有下列两个文件夹:nexus 与 sonatype-work
这里我们更改一下默认的运行用户,如果不更改会出现错误信息,但是不会影响运行:
/etc/profile #运行该命令后,将下面一条语句加入进去
export RUN_AS_USER=root
nexus默认的启动端口为8081,如果需要更改,可以进行下列操作:
cd /usr/local/nexus/conf
vim nexus.properties #19行application-port=8081改为指定即可
nexus启动与其它相关命令:
/usr/local/nexus/bin ./nexus start #启动
/usr/local/nexus/bin ./nexus stop #停止
启动nexus后,按照默认的8081端口,可以访问
http://ip:post
之后即可出现nexus系统的界面:
之后按照提示进行用户名和密码的操作,注意这里的用户名与密码要妥善保管,笔者设定用户名为 admin ,密码为 123456 ,方便下文中的配置讲解。默认的用户名为admin,默认的密码(后期版本)会在登录页面上有提示。密码在/nexus-data/admin.password中。
3.2 配置私服
配置私服之前,首先说明一下nexus的管理界面的分布及一些模块的功能。首先上一张管理平台界面的图片:
在未登录时的界面如上图所示,可以看到右上角有登录的按钮,用作登录,左侧一个tab栏,tab栏中有Welcome,search,与Browse,这里只说明一下Browse,点开这里面可以看到很多的仓库,这里面的仓库有一些是默认的仓库,公开的仓库都可以在这里看到,当登陆完成之后,对jar环境的管理也是在这里。
登录之后,可以看到界面上多了一个齿轮一样的图案,点击之后可以看到如下的界面:
可以看到,有很多的配置,这里不一一详述各种是什么,这里讲述一下如何添加仓库。点击仓库按钮,之后可以看到下列的内容:
点击Create repository,可以看到有很多的选项,这里首先说明几个问题:
hosted 类型的仓库,内部项目的发布仓库
releases 内部的模块中release模块的发布仓库
snapshots 发布内部的SNAPSHOT模块的仓库
3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
这里我们首先新建一个名为maven-releases的仓库,选择maven2 hosted,之后填写相应的内容,再创建一个maven-snapshots ,同上,创建完成之后继续下面的操作。
4. 私服使用
4.1 修改本地Maven配置
这里直接贴上代码,后面再说明:
<!--这里配置我们刚才创建的user用户所对应的releases-->
<server>
<id>releases</id>
<username>admin</username>
<password>*****</password>
</server>
<server>
<id>maven-public</id>
<username>admin</username>
<password>*******</password>
</server>
<!--这里配置我们刚才创建的user用户所对应的Snapshots-->
<server>
<id>Snapshots</id>
<username>admin</username>
<password>*******</password>
</server>
上面配置了我们连接各仓库需要的密码与账号名,配置完成之后我们修改一下中央镜像,注意,将我们的镜像放置于最上面,这样才会首先读取我们的仓库。
4.2 提交本地代码到私服
要想提交本地的代码,首先需要在我们的maven项目中做下列配置:
<distributionManagement>
<!--配置线上releases仓库地址,只要是正式版本都会上传到该地址(注意要和settings.xml文件里面的配置名称相同)-->
<repository>
<id>releases</id>
<url>http://您的ip:8081/repository/maven-releases/</url>
</repository>
<!--配置线上Snapshots仓库地址,只要是快照版本都会上传到该地址(注意要和settings.xml文件里面的配置名称相同)-->
<snapshotRepository>
<id>Snapshots</id>
<url>http://您的ip:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<executions>
<execution>
<id>deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
配置完成之后,我们可以直接 deploy,之后即可在nexus私服中的仓库中看到我们的新项目的仓库内容。
4.3 从私服获取提交的代码
获取提交的内容跟普通的依赖引入一样,我们可以在nexus管理界面中点击我们需要引入的依赖,即可看到有自动生成的引用的语句:
4.4 Maven依赖版本介绍
在这里我们可以看到我们在配置仓库资源的时候就配置了两个仓库,一个是releases,另一个是snapshots版本。这里简单说明一下这两个版本的差异:
releases 版本表示比较稳定的版本,私服中不允许提交两个同版本的环境,如果提交同版本会报错
snapshots 版本表示还在开发中且会经常修改的版本,这种版本可以同一个版本号提交多次,nexus会自动根据提交的时间生成不同的版本信息
5. 写在后面
本文中出现的下载链接如果不能下载请留言,博主可以发送到留言者的邮箱中。本文讲解了Maven的安装与基本配置,以及nexus私服的搭建步骤,提供了相关的资源的下载资源。如果本文讲解有问题的地方,希望读者可以留言,笔者将会改正错误的地方。