maven基础学习(一)

来源:互联网 发布:淘宝客有权重吗 编辑:程序博客网 时间:2024/05/24 06:32

用了一年的maven构建项目,但是对其强大的功能知之甚少,所以从今天起开始系统整理一下关于maven的资料.
1.maven的简单介绍:
  maven是一个跨平台的项目管理工具,主要服务于基于java平台的项目构建,依赖管理,和项目信息管理等.
  maven还为全世界的Java开发者提供了一个免费的中央仓库,在中央仓库里几乎可以找到任何的流行开源类库.
  只要定位了坐标,maven就能够帮我们自动下载我们需要的类库.
2.maven的安装.
  a.安装maven之前首先要确保安装了jdk,可以通过在cmd窗口执行echo %JAVA_HOME%指令,javac指令和java指令验证.
  b.配置maven环境变量MAVEN_HOME:E:\Maven\apache-maven-3.1.0,同时找到一个名为Path的环境变量在变量值得末尾加上"%MAVEN_HOME%\bin;".
    这里需要说明一下的是Path环境变量,当我们在cmd窗口中输入命令时,Windows首先会在当前目录中寻找可执行文件或脚本,如果没有找到,
    Windows会接着遍历环境变量Path中定义的路径,由于我们将%MAVEN_HOME%\bin添加到了Path中,而这里%MAVEN_HOME%实际上是引用了我们
    前面定义的MAVEN_HOME环境变量,其值是Maven的安装目录.因此,Windows会在执行命令时搜索此目录,而mvn执行脚本的位置就是这里.
    最后,配置完上面的环境变量后,打开一个新的cmd窗口,通过执行echo %MAVEN_HOME%指令和mvn -version指令验证环境变量是否配置成功.
    echo %MAVEN_HOME%命令用来检查环境变量MAVEN_HOME是否指向了正确的Maven安装目录,而mvn –version指令用来检查Windows是否能够找到
    正确的mvn执行脚本。
  注意:在linux系统上安装maven的过程这里先不做介绍.
3.maven安装目录分析.
  a.bin目录:该目录包含了mvn运行的脚本,其中mvn是基于UNIX平台的shell脚本,mvn.bat是基于Windows平台的bat脚本,
    在cmd命令窗口中输入任何一条mvn命令时,实际上就是在调用这些脚本.
  b.lib目录:该目录包含了所有maven运行时需要的Java类库,maven本身是分模块开发的,因此用户能看到诸如mavn-core-3.0.jar、
    maven-model-3.0.jar之类的文件,此外这里还包含一些Maven用到的第三方依赖如common-cli-1.2.jar、google-collection-1.0.jar等.
    可以说这个lib目录就是真正的maven.
  c.conf目录:该目录包含了一个非常重要的文件settings.xml.直接修改该文件,就能在机器上全局地定制Maven的行为.
  d.Boot:该目录只包含一个文件,以maven 3.0为例,该文件为plexus-classworlds-2.2.3.jar.plexus-classworlds是一个类加载器框架,
    相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库.
4.maven本地仓库的创建.
  在cmd窗口执行mvn help:system命令,会发现在C:\Users\Ilucky_Si目录下多了一个.m2文件,
  运行这条命令的目的是为了让maven执行一个任务,从命令行输出看到maven会下载maven-help-plugin,
  包括pom文件和jar文件.这些文件都被下载到了Maven本地仓库C:\Users\Ilucky_Si\.m2中.
5.设置HTTP代理.
  有时候由于安全因素考虑,要求你使用通过安全认证的代理访问因特网.这种情况下,就需要为Maven配置HTTP代理,才能让它正常访问外部仓库,
  以下载所需要的资源.首先确认是否可以直接访问公共的Maven中央仓库,通过运行命令ping repo1.maven.org可以检查网络,如果需要代理,
  先检查一下代理服务器是否畅通,比如现在有一个IP地址为192.168.67.191,端口为1234的代理服务,我们可以运行telnet 2192.168.67.191
  1234来检测该地址的该端口是否畅通.如果没有问题,编辑~/.m2/settings.xml文件(如果没有该文件,则复制$MAVEN_HOME/conf/settings.xml).
  添加代理配置如下:

<settings> <proxies><proxy><id>my-proxy</id><active>true</active><protocol>http</protocol><host>192.168.67.191</host><port>1234</port></proxy></proxies></settings>
这段配置十分简单,proxies下可以有多个proxy元素,如果你声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效.这里声明了一个id为my-proxy的代理,active的值为true表示激活该代理,protocol表示使用的代理协议,这里是http.当然,最重要的是指定正确的主机名(host元素)和端口(port元素).
0 0
原创粉丝点击