`

maven2完全使用手册

阅读更多
maven2
    相信maven1 大家都已 很熟悉了,具体maven能做什 ,就不 详细说 了。个人 得maven在 目中用的 是比 多的,公司内部,就不太清楚了。我以前的公司用 一段 时间 ,不 后来就没有下文了。
    与maven1 相比,maven2可算是几乎重写了,不
从速度来 说应该 更快。
   
主要的几个新特性包括:( 详细 参考 http://www.ibm.com/developerworks/cn/opensource/os-maven2/index.html
    1
. 更快、更 简单
       
速度方面可以比上 ant
    2
. 更少的配置文件
       
在的配置文件只剩下了 settings.xml pom.xml 了。
   
3.  Plugin 言更
       
始支持java,BeanShell和ant
    4.  提供了
的模版
       
点是最有帮助的,用 可以自己定 自己的 目模版了,就像用appfuse一 生成
    5. 生命周期的引入
         在Maven2中有了明确的生命周期概念,而且都提供与之
对应 的命令,使得 目构建更加清晰明了。
   
6.  新增 Dependency Scope    
        
点也比 重要,有些用于 test 的包,可以不用加入依
    7. 
传递 化依 管理
       
是最 方便的,可以省了很多配置。 如a 依 b,b a 也会依 c 。但是也会 患,如版本冲突。不 maven 也已 到了,可以使用exclusions来排除相 的重

了那 多, 在切入正 始maven2 之旅:
首些下 需要的工具:
maven2: http://maven.apache.org/download.html 最主要的
maven-proxy:用来代理repository,使用本地
代替maven2的
            http://maven-proxy.codehaus.org/
continuum
:一个不 的持 整合工具,用于自 build 。支持ant,maven
http://maven.apache.org/continuum/
svn:版本控制工具相信都已
配置了。
maven 用于 eclipse 的插件 , maven 主站有下 ,不 的插件。当然 idea 也有相 的插件
最后, http ,服 器是必不可少的。用于内部 开发 使用。
可以使用 apache ,或者 jetty  http://www.mortbay.org/

安装:
   
安装 maven2 简单 ,把下 来的 maven 包解 就行了。(目前我的配置都在 win2003 上, 没有 用于 linux ,所有所有的配置都 针对 windows). 增加相 m2_home=maven2 的安装目 ,不要忘了 java_home 的目 。另外在 path 中增加 % m2_home%\bin; 可以直接在命令行下面使用 mvn
其他工具的安装在后 的文章会介

始第一个 mvean2 目:
  mvn archetype:create -DgroupId=com.mycompany.app \
                   -DartifactId=my-app
 
简单 一下 groupId 相当于你的 组织 ,如同 org.springframework ,会 得本地路径 artifactId ,你主要的 jar 包名称,也就是你要打成的 jar 名称。
编译应
    mvn compile
       
编译 jave 文件
编译测试类 以及运行 测试类
    mvn test
      
运行 测试类
如果只想 编译 test
    mvn test-compile
打包和安装你的本地
打包:
    mvn package
安装:
    mvn install
web site
    mvn site
清除所有
    mvn clean
建相 ide 文件
    mvn idea:idea       
或者     mvn eclipse:eclipse

   
便 一下, maven2 是有生命周期 一概念的,也就是 如果你 package ,相 的以前 步骤 ,如 compile,test 等都会自 动执 行。
刚开 行会比 慢,需要从maven2 中下 所有的文件到本地。如果你的本地没有相 的依 包, 则每 次maven都会去 程下 ,所以配置一个 就比 重要了。
   
另外介 一下主要的参考 料:
    mavn2
主站:主要的 pom settings.xml 参考
    Better Builds with Maven     http://www.mergere.com/m2book_download.jsp
   
,主要通 例子介 可惜都是E文的,花点 时间还 得的。
    下一个主
,会 一下maven2的主要配置。

 
 
maven 配置篇 之 settings.xml
    maven2 比起 maven1 ,需要配置的文件少多了,主要集中在 pom.xml settings.xml 中。
   
先来 说说 settings.xml settings.xml maven 相当于全局性的配置,用于所有的 目。在 maven2 中存在两个 settings.xml ,一个位于 maven2 的安装目 conf 下面,作 全局性配置。 团队设 置,保持一致的定 关键 ,所以 maven2/conf下面的settings.xml就作 为团队 共同的配置文件。保 所有的 团队 有相同的配置。当然 个成 ,都需要特殊的 自定 义设 置,如用 信息,所以另外一个settings.xml就作 本地配置。默 的位置 :${user.dir} /.m2/settings.xml目 中(${user.dir} 指windows 中的用 )。
    settings.xml基本
构如下:
    <settings xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                               http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
  <interactiveMode/>
  <usePluginRegistry/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors/>
  <proxies/>
  <profiles/>
  <activeProfiles/>
</settings>
简单 一下几个主要的配置因素:
localRepository 表示本地
的保存位置,也就是maven2主要的jar保存位置,默 在${user.dir}/.m2/repository,如果需要另外 置,就 成其他的路径。
offline 如果不想
编译 ,都去 程中心 ,那就 true 。当然前提是你已 了必 的依 包。
Servers
   在POM中的 distributionManagement元素定
开发库 。然而,特定的username和pwd不能使用于pom.xml,所以通 此配置来保存server信息
  <servers>
    <server>
      <id>server001</id>
      <username>my_login</username>
      <password>my_password</password>
      <privateKey>${usr.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>
  • id:server id, 用于匹配 distributionManagement id ,比 重要。
  • username, password: 用于登 此服 器的用 名和密
  • privateKey, passphrase private key ,以及 passphrase
  • filePermissions, directoryPermissions :当 文件或者目 录创 建后,需要使用 访问 。参照 unix 文件 可,如 664 775
Mirrors
表示 ,指定 像,用于增加其他
  <mirrors>
    <mirror>
      <id>planetmirror.com</id>
      <name>PlanetMirror Australia</name>
      <url>http://downloads.planetmirror.com/pub/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  • id,name: 唯一的 志,用于区 别镜
  • url: 像的 url
  • mirrorOf :此 像指向的服 id
Proxies
置,主要用于无法直接 访问 中心的 配置。
 
<proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>
    </proxy>
  </proxies>
  • id: 代理的
  • active :是否激活代理
  • protocol, host, port:protocol://host:port 代理
  • username, password :用 名和密
  • nonProxyHosts: 不需要代理的 host
Profiles
 
似于 pom.xml 中的 profile 元素,主要包括 activation,repositories,pluginRepositories properties 元素
 
刚开 始接触的 候,可能会比 迷惑,其 实这 maven2 中比 较强 大的功能。 从字面上来 ,就是个性配置。
 
独定 profile 后,并不会生效,需要通 过满 足条件来激活。
 
repositories pluginRepositories
 
其他 开发库 和插件 开发库 团队 ,肯定有自己的 开发库 。可以通 此配置来定
 
如下的配置,定 了本地 开发库 ,用于 release 布。
    <repositories>
        <repository>
          <id>repo-local</id>
       <name>Internal
开发库 </name>
       <url>http://192.168.0.2:8082/repo-local</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <layout>default</layout>
        </repository>
      </repositories>
      <pluginRepositories>
    <pluginRepository>
    <id>repo-local</id>
    <name>Internal
开发库 </name>
    <url>http://192.168.0.2:8082/repo-local</url>
    <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
    </releases>
    <snapshots>
    <enabled>false</enabled>
    </snapshots>
    <layout>default</layout>
    </pluginRepository>
    </pluginRepositories>
releases, snapshots:
品的版本的 Release 或者 snapshot( 注: release snapshot 的区 release 一般是比 较稳 定的版本,而 snapshot 基本上不 定,只是作 快照)

properties
  maven
properties placeholder ,如 ant properties
包括以下的 5 种类
1.        env.X ,返回当前的
2.        project.x: 返回 pom 中定 的元素 ,如 project.version
3.        settings.x :返回 settings.xml 中定 的元素
4.        java 属性:所有 经过 java.lang.System.getProperties() 返回的
5.        x :用 自己 定的
Activation
 
用于激活此 profile
  <activation>
        <activeByDefault>false</activeByDefault>
        <jdk>1.5</jdk>
        <os>
          <name>Windows XP</name>
          <family>Windows</family>
          <arch>x86</arch>
          <version>5.1.2600</version>
        </os>
        <property>
          <name>mavenVersion</name>
          <value>2.0.3</value>
        </property>
        <file>
          <exists>${basedir}/file2.properties</exists>
          <missing>${basedir}/file1.properties</missing>
        </file>
      </activation>
  • jdk: 如果匹配指定的jdk版本,将会激活
  • os: 操作系
  • property :如果 maven 检测 到相 的属性
  • file: 用于判断文件是否存在或者不存在

除了使用 activation 来激活 profile ,同 可以通 activeProfiles 来激活
Active Profiles
表示激活的 profile, profile id 来指定。
  <activeProfiles>
    <activeProfile>env-test</activeProfile>
指定的 profile id
  </activeProfiles>
 

 
 
maven 配置篇 之 pom.xml
    完了 settings.xml 配置,下来 一下 maven2 的主要配置 pom.xml
pom?
   
pom 为项 象模型。通 xml 表示maven 目,使用pom.xml来 实现 。主要描述了 目:包括配置文件; 开发 者需要遵循的 规则 ,缺陷管理系 组织 和licenses, 目的url, 目的依 性,以及其他所有的 目相 因素。
快速察看:
<project>
  <modelVersion>4.0.0</modelVersion>

  <!-- The Basics -->
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>...</packaging>
  <dependencies>...</dependencies>
  <parent>...</parent>
  <dependencyManagement>...</dependencyManagement>
  <modules>...</modules>
  <properties>...</properties>

  <!-- Build Settings -->
  <build>...</build>
  <reporting>...</reporting>

  <!-- More Project Information -->
  <name>...</name>
  <description>...</description>
  <url>...</url>
  <inceptionYear>...</inceptionYear>
  <licenses>...</licenses>
  <organization>...</organization>
  <developers>...</developers>
  <contributors>...</contributors>

  <!-- Environment Settings -->
  <issueManagement>...</issueManagement>
  <ciManagement>...</ciManagement>
  <mailingLists>...</mailingLists>
  <scm>...</scm>
  <prerequisites>...</prerequisites><b
分享到:
评论

相关推荐

    maven2完全使用手册.TXT

    maven2完全使用手册 http://maven.apache.org/pom.html

    maven eclipse 培训教程

    Maven2使用.ppt maven2完全使用手册.docx Maven_介绍培训.pptx Maven学习指南.pdf Maven实战.doc Maven实战.pdf Maven构建并管理Flex项目入门.pdf Maven简单实用教程.docx OTNVD_WebLogicServerDevelopment_CN.pdf ...

    Maven完全适用手册

    **Maven完全适用手册概述** Maven是一款强大的Java项目管理和集成工具,它通过XML格式的配置文件(pom.xml)来管理项目的构建、报告和依赖关系。Maven2相较于其前身Maven1进行了大量改进,提供了更高效、简洁的体验...

    Maven2_资料分享

    包含:Maven2_基础教程.pdf\《Maven权威指南》-电子书下载(PDF)(中文)\maven2完全使用手册.docx\Maven3实战笔记04Maven的生命周期和插件.doc\Maven实战.pdf\Maven学习指南.pdf

    Maven入门到精通

    **Maven入门到精通** Maven,一个强大的Java项目管理工具,由Apache软件基金会...阅读提供的文档,如《Maven入门-概念与实例》、《Maven 参考文档》和《Maven2完全使用手册》,将有助于你更全面地掌握Maven的使用。

    Maven学习资源打包汇总

    《maven2完全使用手册》全面地探讨了Maven2的各种特性和用法,包括高级配置、多模块项目管理、依赖范围、继承与聚合,以及解决依赖冲突的方法。这本手册对于那些希望深入理解Maven的开发者来说非常实用。 《Maven3...

    maven完全手册

    这份“maven完全手册”是个人精心整理的中文文档,旨在帮助开发者全面理解并掌握Maven的使用。 **1. Maven简介** Maven是由Apache软件基金会开发的一个项目管理和综合工具。它基于项目对象模型(Project Object ...

    Maven完全手册

    Maven完全手册 maven2 起步 相信maven1 大家都已经很熟悉了,具体maven能做什么,就不详细说了。个人觉得maven在开源项目中用的还是比较多的,公司内部,就不太清楚了。我以前的公司用过一段时间,不过后来就没有...

    maven 完全手册

    Maven的完整手册通常会涵盖以上知识点,并提供详细的使用说明和最佳实践,帮助用户更有效地使用Maven进行项目构建和管理。手册中还可能包含一些高级技巧,比如如何通过Maven进行代码的打包和部署,如何设置安全机制...

Global site tag (gtag.js) - Google Analytics