Maven学习总结: 安装和配置

简介

    最早接触maven的时候大概是2007年,在一些工程的应用中需要应用到maven。因为没接触过感觉很新鲜,最开始也没感觉到它的作用和优点。在后来的工作中陆续也接触到它,一直没来得及好好的总结一下。这里针对maven的一些基本概念和应用做一个总结。也希望对后续项目的开发做一个简单的指导。

 

和ant的比较

    在用maven之前曾经用过一段时间的ant,同样作为管理依赖关系和编译源代码的工具,maven看起来显得很奇怪。在使用ant做开发的时候一般是找到项目中所需要使用的jar包,然后下载到本地的lib文件夹中,然后在build.xml中定义各种依赖关系和引用。这种开发的方式有一个问题就是我们每次引用到需要的类库时,需要将它们都加入到源代码管理系统里,方便到其他环境下配置和执行。这样会使得需要管理的源代码比较庞大。另外,如果我们自定义的一些类库需要更新时也是一个问题。很多时候编译的结果就是一个jar包,需要把最新的拷到目的环境去做机械的替换。

    相对来说,maven可以定义对各种类库的依赖,这些依赖的类库不需要事先下载下来保存到本地,它们只需要定义在一个pom.xml文件里就可以了。在执行编译的时候通过从maven的在线库里将对应的库下载到本地,然后再执行编译和运行。另外,在maven里也可以指定依赖库的版本,这样可以保证不会出现选择错误版本的库。

 

安装和配置

    前面做了一个简单的比较,好了,现在不废话,整点实在的。和ant的安装比较类似,根据我们环境的不同,我们可以选择自动安装或者手动下载配置两种方式。以我本地环境ubuntu系统为例,分别讨论两种安装配置的方式:

 

自动安装配置

    在ubuntu下面安装maven的方式很简单,只要执行如下命令就可以:

sudo apt-get install maven

   然后系统就会提示输入管理员密码,接着进行自动化的配置和安装。

    执行完之后,我们如果执行命令:

mvn -v

   则会显示如下的结果:

frank@frankpc:~$ mvn -v
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-43-generic", arch: "amd64", family: "unix"

    这里表示我们安装的maven版本是3.0.4,以及对应的java版本以及linux内核信息。

 

手动下载安装

    手动下载安装的过程也很简单,首先去如下网站 http://maven.apache.org/,然后在download里面选择一个版本下载。目前最新的版本是3.2.3。下载到本地解压后的文件夹结构如下:

 

    这里的两个文件夹比较重要,一个是bin, 里面是我们执行的各种maven的命令。另外一个是conf目录,里面保存着针对环境的具体系统配置。比如我们设置依赖库下载的proxy,我们下载的类库保存在哪个地方。这些东西都需要在这里找。

    在解压到指定目录后,我们要想在命令行执行maven命令只需要设定一个环境变量PATh就可以了。一般情况下可以通过修改~/.profile文件,在里面增加一行:

 export PATH=$PATH:~/pathtomaven/bin

    在具体的环境里将pathtomaven替换成maven所在的目录就可以了。

 

基本配置

    经过前面的步骤之后,基本上已经安装好maven了。这里再针对一些特定的配置做一个讨论。一般我们如果是手动安装好maven后,我们需要做一些特定的配置,就需要修改配置文件。在手动安装的环境里,这个配置文件就是conf目录下的settings.xml。

    如果是通过命令行自动安装的话,这个配置文件所在的目录如下:

    /usr/share/maven/conf

   里面的settings.xml文件比较大,这里截取一部分:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
  </pluginGroups>

<proxies>
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <servers>
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
  </servers>

  <mirrors>
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
  </mirrors>

  <profiles>
 
  </profiles>

</settings>

    这里默认标注的几个xml节点分别用来设定.m2文件夹的位置以及proxy等信息。在默认的情况下,.m2文件用来保存我们下载的所有库文件,而且它就在当前用户所在的根目录下。 

    这样,一个maven的安装和基本配置就完成了。

 

参考材料

http://maven.apache.org/index.html

http://www.mkyong.com/tutorials/maven-tutorials/

http://stackoverflow.com/questions/3724415/maven-artifact-and-groupid-naming

http://www.amazon.com/Introducing-Maven-Balaji-Varanasi/dp/1484208420/ref=sr_1_1?s=books&ie=UTF8&qid=1418526437&sr=1-1&keywords=introducing+maven

猜你喜欢

转载自shmilyaw-hotmail-com.iteye.com/blog/2159322