专栏首页强仔仔Maven教程-使用Nexus搭建私服

Maven教程-使用Nexus搭建私服

前言

使用Maven可以对项目的各种依赖进行统一管理,在pom文件中定以好依赖,就可以从Maven中央库或者第三方库中下载到本地。但在企业内部使用也会遇到一些问题,每个使用者都需要去下载相应的依赖包或者插件,效率低下,浪费带宽,所以搭建企业内部的私服就很有必要。

搭建私服后,所有的依赖就可以从私服下载,私服会自动判定,如果私服库里没有这个资源,则私服会自动去网上下载,如果私服已经包含所需资源,则可以通过内网提供给使用者,大大提高工作效率。

Nexus是Maven常用的私服,安装使用都还算方便,用于搭建企业内部的maven私服。

准备工作

下载JDK:http://download.oracle.com/otn-pub/java/jbk/8u74-b02/jdk-8u74-linux-x64.tar.gz?AuthParam=145320414_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

启动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>releases</id><!--这个ID需要与你的release仓库的Repository ID一致-->
           <url>http://172.18.19.157:8081/nexus/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id><!--这个ID需要与你的snapshots仓库的Repository ID一致-->
        <url>http://172.18.19.157:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>

</distributionManagement>

2.修改$MAVEN_HOME\conf目录下的settings.xml配置文件,添加如下配置:

<servers>
     <server>
        <id>releases</id>
        <username>admin</username>
        <password>dev123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>dev123</password>
    </server>
  </servers>

3.打开windows命令行,在工程所在目录下执行

mvn deploy

所部署的包就自动上传到了nexus安装目录下的

二.配置Maven从Nexus下载构件 1.在POM中配置Nexus私服,这样的配置只对当前的Maven项目有效。

<repositories>
      <repository>
          <id>public</id>
          <name>Team Maven Repository</name>
          <url>http://172.18.19.157:8081/nexus/content/groups/public/</url>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>true</enabled>
          </snapshots>
      </repository>
  </repositories>

2.在settings.xml中配置profile元素,这样就能让本机所有的Maven项目都使用自己的Maven私服。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【商城应用】商品运费流程设计

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    林老师带你学编程
  • Nginx配置反向代理和负载均衡

    今天给大家介绍一下如何利用Nginx进行反向代理,之所以介绍这个的原因是,因为开发的时候遇到一个很尴尬的场景。因为是springboot项目,所以每一个控制类的...

    林老师带你学编程
  • 揭秘前端精度丢失之谜!!!

    今天测试突然跟我说页面显示的数值和数据库的对应不上,一开始我以为是程序问题,把数据给修改了,但是后面检查程序发现,没有任务问题,用postman请求,发现数据也...

    林老师带你学编程
  • jQuery插件开发学习笔记

      今天想了解一下jQuery的插件开发,于是google了一下,列在前面的两篇文章都很不错,jQuery插件开发全解析 更是将插件开发的方方面面细致入微的进行...

    thz
  • 小米、京东、360争抢入局,智能门锁血战开启

    今年2月,小米米家智能门锁以1299元的价格正式开售,截至3月31日,已有超过17万人在小米商城预约购买。这个数字是众多智能门锁品牌暂时难以企及的高度。

    镁客网
  • PHP全栈学习笔记11

    在php.ini文件中找到“;extension=php_mcrypt.dll”和“;extension=php_mhash.dll”

    达达前端
  • 年度微信数据报告发布,这数据很“大”!

    腾讯官方发布了最新的《2017微信数据报告》,根据腾讯公布的数据,微信在国内已经成为首屈一指的聊天软件。报告核心数据如下: 1、日登录用户(9月)9.02亿,较...

    钱塘数据
  • 利用 Python 生成数据透视表

    利用 info() 方法查看数据中是否有空值,如果有空值的话,则可以使用 dropna() 方法将其移除。

    zucchiniy
  • HTTPS 原理剖析与项目场景

    最近手头有两个项目,XX导航和XX产业平台,都需要使用HTTPS协议,因此,这次对HTTPS协议做一次整理与分享。

    哲洛不闹
  • “用策略模式消除if语句”gildedrose-refactoring编程操练

    嗨,欢迎来到镀金玫瑰团队。如您所知,我们是一家小旅馆,位于一线城市的黄金地段,旅馆老板艾里森(Allison)很友好。我们只销售高端商品。不过,每件商品都有一个...

    吾真本

扫码关注云+社区

领取腾讯云代金券