初识Maven与nexus,及nexus安装

1、了解Mavenjava

  1. 优秀的构建工具
    经过简单的命令,可以完成清理、编译、测试、打包、部署等一系列过程。同时,Maven跨平台,不管是在Windows、仍是在Linux或Mac上,均可以使用一样的命令。

2. 依赖管理工具
项目依赖的第三方的开源类库,均可以经过依赖的方式引入到项目中来。代替了原来须要首先下载第三方jar,再加入到项目中的方式。从而更好的解决了合做开发中依赖增多、版本不一致、版本冲突、依赖臃肿等问题。linux

具体是怎么实现的呢?Maven经过坐标系统准确的定位每个构件,即经过坐标找到对应的java类库。apache

3. 项目信息管理工具
可以管理项目描述、开发者列表、版本控制系统地址、许可证等一些比较零散的项目信息。除了直接的项目信息,经过Maven自动生成的站点,以及一些已有的插件,还可以轻松得到项目文档、测试报告、静态分析报告、源码版本、日志报告等很是具备价值的项目信息。centos


2、 Maven与Nexus
这个问题从Maven的第二个用处提及,依赖管理,经过在Pom中指定坐标的形式将jar引入到项目中。那这个过程,要经历怎样一个流程呢?从哪里寻找jar?下载的jar放到哪里?缓存

将这个问题顺下来,就知道nexus和maven的关系了。服务器

从×××到jar?项目用到的jar又存放在哪里?这引出了仓库的概念,maven经过仓库来统一管理各类构件。Maven的仓库分为本地仓库和远程仓库。
初识Maven与nexus,及nexus安装maven

当Maven根据坐标寻找构件时,它首先会查看本地仓库,若是本地仓库存在此构件,则直接使用;若是本地仓库不存在此构件,或者须要查看是否有更新的构件版本,Maven会去远程仓库查找,发现须要的构件以后,下载到本地仓库再使用。
项目=>本地仓库=>远程仓库ide

Nexus是一种远程仓库,根据上段的介绍,咱们已经知道远程仓库的做用。在远程仓库中,默认的是中央仓库,中央仓库是Maven核心自带的远程仓库。那就使用中央仓库不就得了吗,为何咱们要安装Nexus呢?工具

咱们从项目实际开发来看:
1.一些没法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其余依赖项目使用。单元测试

  1. 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理全部外部的远程仓库。当本地Maven项目须要下载构件时,先去私服请求,若是私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet连接,因为私服已经缓存了大量构件,整个项目仍是能够正常使用的。同时,也下降了中央仓库的负荷。
    初识Maven与nexus,及nexus安装
    因此,Nexus仅仅是私服的一种。

3、 Nexus安装

1.环境:centos7
版本:
jdk:jdk-7u45-linux-x64.rpm
nexus:nexus-2.14.2-01-bundle.tar.gz
maven:apache-maven-3.3.9-bin.tar.gz

2.安装jdk,maven环境配置
配置:

JAVA_HOME=/usr/java/jdk1.7.0_45
JRE_HOME=/usr/java/jdk1.7.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$M2_HOME/bin
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
M2_HOME=/data/apache-maven-3.3.9

export JAVA_HOME JRE_HOME PATH CLASSPATH M2_HOME
source /etc/profile

版本查看:
java版本: java -version
maven版本:mvn --version

3.安装,配置nexus
将下载的nexus-2.14.2-01-bundle.tar.gz包,解压到/data 下
编辑nexus脚本文件
cd /data/nexus/nexus-2.14.2-01/bin

cat nexus
NEXUS_HOME=".."   ##nexus安装目录/data/nexus/nexus-2.14.2-01
RUN_AS_USER=root   ##启动nexus用户

有两个文件:
nexus-2.14.2-01:nexus服务
sonatype-work:私有库目录

nexus设置启动服务:
sh /data/nexus/nexus-2.14.2-01/bin/nexus

4.访问nexus
登陆http://IP:8081/nexus/
默认用户名和密码:admin admin123


4、 maven命令

Maven构建java项目,Maven工程结构和内容都基于pom.xml。经常使用的打包命令有mvn package、mvn install、mvn deploy。打包生成jar包或war。但这三者有区别。

  • mvn clean package:依次执行了clean、resources、compile、testResources、testCompile、test、jar等7个阶段。
  • mvn clean install:依次执行了clean、resources、compile、testResources、testCompile、test、jar、install等8个阶段。
  • mvn clean deploy:依次执行了clean、resources、compile、testResources、testCompile、test、jar、install、deploy等9个阶段。

其中clean命令是清理构建项目下的target目标文件,即会删除项目下的target文件目录。项目代码修改后需使用clean清除target,从新生成target。

package命令完成项目编译、单元测试、打包功能,但没有将打好的jar包部署到本地maven仓库和远程私服。install命令完成项目编译、单元测试、打包功能,把打好的jar包部署到本地maven仓库,但没有部署到远程私服仓库。deploy命令完成项目编译、单元测试、打包功能,把打好的jar包部署到本地maven仓库,同时也会部署到远程私服仓库。

相关文章
相关标签/搜索