maven实战--读书笔记

第一章:Maven简介

1.本书为国内社区公认的专家徐晓斌所写,本书基于maven3.0所编写,maven是非常优秀的建模工具,maven最大化的消除了构建的重复,抽象了构建生命,他还有一个优点,帮助我们标准化构建过程,有了maven,所有的项目构建命令都是简单一致的,他还是一个依赖管理工具和项目信息管理工具,提供了中央仓库,能帮我们自动下载构建。

2.其他建模工具之Make,make是一个名为Makefile的脚本文件驱动,该文件使用自己定义的语法格式,其基本组成部分是Rules,而每一条规则又包括目标(Target),依赖(prerequisite)和命令(Command),make通过一系列目标和依赖将整个构建过程串联起来,同时利用本地命令完成每个目标的实际行为,Make的强大之处是他可以利用所有系统的本地命令,尤其是unix和linux系统,丰富的功能,强大的命令能够帮助Make高效的完成任务,Make缺点,将自己和操作系统绑定在一起,使用Make,很难实现跨平台的构建,Makefile的语法也成问题,Make构建失败的原因往往是因为一个难以发现的空格或者tab的错误。

3.其他建模工具之Ant(Another Neat Tool),他最早用来构建著名的tomcat,Ant可以看成是是java版本的Make,因为使用了java,所以是跨平台的,和Make一样,Ant是过程式的,开发者指定每一个目标,以及完成该目标所需要执行的任务,针对每一个目标,开发者都需要重复编写这一过程,Maven是申明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要申明项目的基本元素,Maven就执行内置的,完成的构建过程,很大程度消除了重复。Ant没有依赖管理,很长一段时间Ant不得不手工管理依赖,现在可以借助lvy管理依赖,Maven不仅内置了依赖管理,更有一个可能拥有全世界最多的java开源软件包的中央仓库,Maven用户,无需配置可以直接享用。

第二章:Maven安装与配置

1.windows安装maven

首先需要检查是否安装java环境,运行cmd命令,echo “%JAVA_HOME%”  java-version;javac -version

1.安装jdk,添加环境系统变量----->变量名:JAVA_HOME,变量值:D:\jdk1.8.0_91;添加变量名CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 然后在path中添加标红配置,也可以编辑本文添加,记得添加之前确认是否是以;结尾,如果不是先添加;后,在添加自己的java路径,然后以;结束。

2.Maven安装

下载路径:http://maven.apache.org/download.cgi   ,apache-maven-3.6.1-bin.zip  解压路径D:\developTools\

 配置环境变量:变量名:MAVEN_HOME:变量值:D:\developTools\apache-maven-3.1.0,在path中添加

2.linux安装maven

下载路径:http://maven.apache.org/download.cgi   ,  apache-maven-3.6.1-bin.tar.gz  解压至本地目录

现在已经创建一个好的apache-maven-3.0,虽然直接使用该目录配置配置环境变量就能使用maven了,但是推荐的做法是在安装的目录旁平行的创建一个符号链接,方便日后升级 ln -s apache-maven -> apache-maven-3.0,第二步,设置MAVEN_HOME环境变量指向符号链接apache-maven,并且把安装目录下的bin/文件夹添加到系统变量path中;一般而言,需要将这两行命令添加到系统的登录shell中,编辑~/.bashrc文件,添加两行命令,每次启动一个终端,这些配置可以自动执行。命令如下

export MAVEN_HOME=/home/local/bin/apache-maven

export PATH:$PATH:$MAVEN_HOME/bin

检验maven是否安装成功:echo $MAVEN_HOME     mvn -v

maven升级:假设我们现在需要将maven升级到maven 3.1版本,将安装包解压至前一版本的平行目录,然后更新符号链接指向3.1版的目录就行ln -s apache-maven-3.1/apache-maven

3.安装目录分析

maven目录结构

bin:该目录包含了mvn运行的脚本,这些脚本来配置java命令,准备好classpath和相关的java系统属性,然后执行java命令,其中mvn是linux的shell脚本,mvn,bat是windows平台的bat脚本,在命令行中输入一条mvn命令时,实际上是调用这些脚本,该目录还包含了mvnDebug和mvnDebug.bat两个文件,两种有何区别,mvnDebug比mvn多了一条MAVEN_DEBUG_OPTS配置,其作用是运行Maven时,开启debug模式,以便调试maven本身,该目录还包含了m2.conf文件,这是classworlds的配置文件,后面会介绍classworlds。

boot:该目录只包含一个文件,该文件为plexus-classworlds-2.2.3.jar,plexus-classworlds是一个类加载器框架,相对于java类加载器,他提供了更丰富的语法以方便配置。

conf:该目录包含了一个非常重要的setting.xml,直接修改该文件,能在机器上全局的定制maven的行为,一般情况下,我们会复制一份,然后在修改。

lib:该目录包含了所有maven运行期间需要的java类库,maven本身是分模块开发的,因此用户还可以看到maven-core-3.0,maven-model-3.0之类的文件,此外,还包含了一些maven用到的第三方依赖库,common-cli-1.2.jar,google-collection-1.0.jar等

4.设置http代理

公司基于安全因素考虑,要求你通过使用安全认证的代理访问因特网,这种情况下,就需要为maven配置http代理,才能让他正常访问外部仓库。

在setting.conf文件中,proxies中可以有多个proxy元素,如果申明了多个proxy元素,则默认第一个被激活的proxy会生效,这里申明了一个id为optional的代理,active的值为true,表示激活该代理,protocol表示使用的代理协议,这里是http,host和port为主机名和端口,username和password设置认证信息,nonProxyHosts用来指定哪些主机名不需要代理,可以使用“|“来分割多个主机名,改配置也可以使用通配符,如*。google.com,表示所有以google.com结尾的域名访问都不需要通过代理。 

猜你喜欢

转载自www.cnblogs.com/hejj-bk/p/11415630.html