使用Maven可以对项目的各种依赖进行统一管理,在pom文件中定以好依赖,就可以从Maven中央库或者第三方库中下载到本地。但在企业内部使用也会遇到一些问题,每个使用者都需要去下载相应的依赖包或者插件,效率低下,浪费带宽,所以搭建企业内部的私服就很有必要。
搭建私服后,所有的依赖就可以从私服下载,私服会自动判定,如果私服库里没有这个资源,则私服会自动去网上下载,如果私服已经包含所需资源,则可以通过内网提供给使用者,大大提高工作效率。
Nexus是Maven常用的私服,安装使用都还算方便,用于搭建企业内部的maven私服。
下载JDK:http://download.oracle.com/otn-pub/java/jdk/8u74-b02/jdk-8u74-linux-x64.tar.gz?AuthParam=1457320414_0a8f6e90d7f0837453418473460f3742
下载Maven:http://apache.fayea.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
下载Nexus:http://www.sonatype.org/nexus/go,Nexus所有版本下载地址:
http://www.sonatype.org/nexus/archived/
1、安装JDK
解压缩
> tar xzf jdk-8u74-linux-x64.gz
配置环境变量
> vi /etc/profile
在文件最后一行追加:
export JAVA_HOME=/home/jdk/jdk1.8.0_74
export PATH=$PATH:$JAVA_HOME/bin
让系统重新加载/etc/profile,命令:
> source /etc/profile
验证是否安装成功
> java -version
出现如下界面表示安装成功了
java version “1.8.0_74”
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
2、安装Maven
解压文件
> tar -zvxf apache-maven-3.3.9-bin.tar.gz
配置环境变量
> vi /etc/profile
最近文件最后追加如下两行:
export MAVEN_HOME=/home/maven/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin
让系统重新加载/etc/profile,命令:
> source /etc/profile
验证是否安装成功
mvn -version
3、安装Nexus
解压文件
tar xzf nexus-2.12.0-01-bundle.tar.gz
解压后的目录结构如下图所示:
上图中的 nexus-2.12.0-01和sonatype-work目录就是解压tar包后的两个目录,nexus-2.12.0-01中是nexus的核心文件,sonatype-work,会将下载来的开发包放置在其中。
启动Nexus
[root@w157-bigdata-Maven nexus-2.12.0-01]# ./bin/nexus
出现如下警告:
[root@w157-bigdata-Maven nexus-2.12.0-01]# ./bin/nexus
Usage: ./bin/nexus { console | start | stop | restart | status | dump }
[root@w157-bigdata-Maven nexus-2.12.0-01]# ./bin/nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
默认情况下,不建议以root用户运行Nexus,我们可以修改bin/nexus中的配置跳过警告
vi bin/nexus
修改完成后保存退出即可。
[root@w157-bigdata-Maven nexus-2.12.0-01]# ./bin/nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
[root@w157-bigdata-Maven nexus-2.12.0-01]#
另外,默认端口为8081,如需修改请查看配置文件 conf/nexus.properties
启动Nexus
[root@w157-bigdata-Maven nexus-2.12.0-01]# ./bin/nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
[root@w157-bigdata-Maven nexus-2.12.0-01]#
访问网址:http://172.18.19.157:8081/nexus
点击右上角的 Log In 按钮即可登陆了。默认登录账号/密码为: admin/admin123 ,登陆成功后的界面
将列表中所有Type为proxy 的项目的 Configuration 中的 Download Remote Indexes 设置为True
将Releases仓库的Deployment Policy设置为 Allow ReDeploy
当然我们也避免不了会使用到一些第三方的 jar ,而这些jar包也不存在于互联网上的maven中央仓库中,这时我们可以手工添加jar 到我们的私服中。
添加第三方 jar 如下:
填写完必选字段,点击Upload Artifact(s)按钮即可。
如果需要删除的话,如下:
一. 自动发布构件到远程仓库
1. 在工程的pom.xml中添加:
<distributionManagement>
<repository>
<id>releasesid>
<url>http://172.18.19.157:8081/nexus/content/repositories/releasesurl>
repository>
<snapshotRepository>
<id>snapshotsid>
<url>http://172.18.19.157:8081/nexus/content/repositories/snapshotsurl>
snapshotRepository>
distributionManagement>
2.修改$MAVEN_HOME\conf目录下的settings.xml配置文件,添加如下配置:
<servers>
<server>
<id>releasesid>
<username>adminusername>
<password>dev123password>
server>
<server>
<id>snapshotsid>
<username>adminusername>
<password>dev123password>
server>
servers>
3.打开windows命令行,在工程所在目录下执行
mvn deploy
所部署的包就自动上传到了nexus安装目录下的
二.配置Maven从Nexus下载构件
1.在POM中配置Nexus私服,这样的配置只对当前的Maven项目有效。
<repositories>
<repository>
<id>publicid>
<name>Team Maven Repositoryname>
<url>http://172.18.19.157:8081/nexus/content/groups/public/url>
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>trueenabled>
snapshots>
repository>
repositories>
2.在settings.xml中配置profile元素,这样就能让本机所有的Maven项目都使用自己的Maven私服。