Maven2安装总结
2007-02-25 17:09
以前虽然使用过Maven1.0,当发现现在的Maven2.0的变化和1.0比起来变化很大,配置上倒还一样,但是使用上有很大不同,如果你还用1.0的命令,会发现许多不能使用。闲话少叙,进入正题。
首先当然去Apache网站下载Maven2了。下载地址:http://maven.apache.org/download.html 。我下载的版本是maven-2.0.4-bin.zip
然后我把maven-2.0.4-bin.zip解压到D:\maven-2.0.4
下面就是配置环境变量了,这和1.0的版本是一样的。(1)MAVEN_HOME:D:\maven-2.0.4 (2)在Path 中加入%MAVEN_HOME%\bin,如下图示:
这样配置就OK了。然后,我建立了如下目录:E:\app\mavenApp,当然这些可以随便建立,呵呵。
下面说一些Maven1.x和Maven2.x的不同(一些摘自一些网友文章)
------------------------------------
Maven2 把配置文件压缩成了pom.xml和settings.xml 两个文件,简洁了不少。POM是Maven的核心对象模型,在Maven2中POM已由project.xml转移到pom.xml中使用,版本也由3升级为4。对于项目,一般只需要pom.xml就行了。在Maven2中不需要也不提倡使用maven.xml
生命周期的引入
在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:
validate,验证工程是否正确,所有需要的资源是否可用。 
compile,编译项目的源代码。 
test-compile,编译项目测试代码。 
test,使用已编译的测试代码,测试已编译的源代码。 
package,已发布的格式,如jar,将已编译的源代码打包。 
integration-test,在集成测试可以运行的环境中处理和发布包。 
verify,运行任何检查,验证包是否有效且达到质量标准。 
install,把包安装在本地的repository中,可以被其他工程作为依赖来使用 
deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。 
generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
新增Dependency Scope
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
compile,缺省值,适用于所有阶段,会随着项目一起发布。 
provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
------------------------------------
下面说些基本设置,打开D:\maven-2.0.4\conf\settings.xml
1. 改变<localRepository>E:/app/m2/repository</localRepository> 目的:改变本地的数据仓库目录(存放从远程下载的jar包),如果不改变也可以,如不改变,缺省目录为:C:\Documents and Settings\主机名\.m2\repository
2. 配置代理,主要目的是为了能从远程下载jar包,根据实际的网路情况进行配置吧。因为我现在单位是有代理服务器的,如果不配置,就不能从远程下载jar包了。我的配置如下(注意:如果你的网络没有代理服务器,就不用配置这个步骤)
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<host>192.168.17.100</host>
<port>8889</port>
<nonProxyHosts>192.168.*.*</nonProxyHosts>
</proxy>
下面就是一些goal命令了,这里和Maven1有不少不同,常用的命令有:创建Maven的普通java项目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName    创建Maven的Web项目:mvn archetype:create -DgroupId=com.mycompany.app
-DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp    编译源代码:mvn compile (或者:mvn compiler:compile)   编译测试代码:mvn test-compile    运行测试:mvn test    产生site:mvn site    打包:mvn package    在本地Repository中安装jar:mvn install    清除产生的项目:mvn clean    生成eclipse项目:mvn eclipse:eclipse   生成idea项目:mvn idea:idea(执行命令前,要先进入到所建工程的目录中,即pom.xml目录中,然后在执行mvn idea:idea的命令。生成eclipse也是如此)组合使用goal命令,如只打包不测试:mvn -Dtest package    编译测试的内容:mvn test-compile   只打jar包: mvn jar:jar   只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile (这里要特别注意 -skipping 的灵活运用,当然也可以用于其他组合命令)   清除eclipse的一些系统设置:mvn eclipse:clean
=========================================================
配置存储库
要求项目的每个开发者必须在conf目录中配置存储库是不方便的,所以Maven可以同时查看多个存储库并且将它们全部配置在pom.xml文件中。让我们看看一个例子,它展示了如何在应用程序用使用多个存储库。在以下从pom.xml文件摘录的片断中,我们设置了两个存储库来让Maven寻找依赖项。Ibiblio一直是默认的存储库,我们又添加了Planet Mirror作为后援存储库。我们也可以让团队使用的本地web服务器作为第二个存储库。
<repositories>
<repository>
<id>Ibiblio</id>
<name>Ibiblio</name>
<url>http://www.ibiblio.org/maven/</url>
</repository>
<repository>
<id>PlanetMirror</id>
<name>Planet Mirror</name>
<url>http://public.planetmirror.com/pub/maven/</url>
</repository>
</repositories>
==================================================
遇到的小问题解决。
* 当建立一个工程后,执行 mvn eclipse:eclipse ,建立一个maven的工程,用eclipse打开后,发现报如下错误:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp   ,这是因为在Eclipse 没有配置 M2_REPO 变量,配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables
新建一个 M2_REPO 的变量,变量值指向你系统的Maven2的数据仓库位置。如图:
------------------------------------------
* POM.XML 继承的写法
<project 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.hivemind</groupId>
<artifactId>hivemind-examples</artifactId>
<packaging>jar</packaging>
<version>2.0-alpha-1</version>
<parent>
<groupId>org.apache.hivemind</groupId>
<artifactId>hivemind-project</artifactId>
<version>2.0-alpha-1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>HiveMind Examples</name>
<inceptionYear>2003</inceptionYear>
<dependencies>
<dependency>
<groupId>org.apache.hivemind</groupId>
<artifactId>hivemind-framework</artifactId>
<version>2.0-alpha-1</version>
</dependency>
* 如何安装Jar(或war)依赖到本地的数据仓库中?
下面具一个如何把dwr.jar包上传到本地数据仓库的例子,一看例子,大家就明了了。
- 下载dwr.jar包到本地,我把它放到了 C:/ (C盘根目录),如图示:
- 进入“命令行提示符”,进入到C:/,然后执行 mvn install:install-file -Dfile=dwr.jar -DgroupId=dwr.mocha -DartifactId=dwrDart -Dversion=1.0 -Dpackaging=jar 这样就把dwr传到了本地仓库中(我的本地仓库地址为:E:\app\m2\repository\),上传到仓库中的jar包名为dwrDart-1.0.jar,目录结构为dwr/mocha/dwrDart/1.0/dwrDart-1.0.jar如图示:

eclipse里面M2_REPO引用(Maven2安装总结)相关推荐

  1. eclipse各种常用插件在线安装.txt

    一,反编译插件: A.Jadclipse 1.打开eclipse增加站点:http://jadclipse.sf.net/update,在线安装好JDT Decompiler 3.4.0 2.http ...

  2. 每天一个脱发小技巧 | Eclipse环境下spotbugs的安装配置和详细使用方法

    每天一个脱发小技巧 | Eclipse环境下spotbugs的安装配置和详细使用方法 SpotBugs介绍 Eclipse环境下SpotBugs安装 SpotBugs的使用 其他 SpotBugs介绍 ...

  3. Eclipse NDK 配置,无需安装Cygwin

    Eclipse NDK 配置,无需安装Cygwin Eclipse NDK 配置,不用安装Cygwin 文章转自http://www.cnblogs.com/chenjiajin/archive/20 ...

  4. eclipse中svn插件的安装

    Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了SVN.Subversion项目的初衷是为了替换当年开源社区最为流行的版本控制软件 ...

  5. IDE之EcliPse:EcliPse软件的简介、安装、入门、使用方法之详细攻略

    IDE之EcliPse:EcliPse软件的简介.安装.入门.使用方法之详细攻略 目录 EcliPse软件的简介 Eclipse特点 EcliPse软件的安装 EcliPse软件的入门 1.快捷键集合

  6. Eclipse Juno在ubuntud的安装(SVN)

    下载:http://www.eclipse.org/downloads/?osType=linux 直接解压后,移到 /usr/local/,直接运行即可. --------------------- ...

  7. eclipse的下载JDK的安装与配置

    eclipse的下载JDK的安装与配置  废话不多,按步骤来就OK.亲测可用,记下来撩妹~ 1)JDK的安装与配置 下载JDK安装包  百度搜索"oracle" 进入官网(传送门- ...

  8. (转)关于eclipse的TestNG的插件安装方法

    背景:最近在学习spring 4.x时候,用到了testNG的测试方法,发现需要在eclipse安装testNG插件才能够正常进行单元测试. 1 插件安装 今天在配置eclipse+selenium+ ...

  9. linux 下eclipse调试程序,文章2 Linux安装Eclipse阅读及调试程序

    由于安装Eclipse需要Java环境,还需要配置环境,非常复杂,建议安装系统时,选择上Eclipse开发工具 但是安装的Eclipse中没有CDT.首先给Eclipse安装一个CDT. 1.安装CD ...

最新文章

  1. web 服务器-Nginx
  2. win nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are depr
  3. 计算机技术基础期末考试,《计算机网络技术基础》期末考试试卷
  4. Python Data Science的多版本多环境管理工具Anaconda
  5. hadoop 分片与分块,map task和reduce task的理解
  6. magic_quotes_gpc与magic_quotes_runtime区别
  7. 高可用(HA)集群原理概述
  8. Ibatis中SqlMapClientTemplate和SqlMapClient的区别
  9. Scapy 函数传值问题,解决多层数据获取
  10. css宋体代码_CSS字体代码
  11. MATLAB图像分割系统设计
  12. 为什么打印机打印照片模糊_家用喷墨打印机打印照片不清楚怎么办 是什么原因?...
  13. python计算两点间距离_用python计算图像中两点之间的距离
  14. 实现 Git 目录权限控制
  15. windows命令 format的用法
  16. Mysql 分表分区
  17. 这才是心理学:02可证伪性,如何打败头脑中的小精灵
  18. 语音转换成文本 技术实现_职业转换者指南,帮助您实现梦想的技术工作
  19. VS中C++解决方案中多个项目文件的引用
  20. 三层交换机实现 VLAN 间通信

热门文章

  1. 中文 Markdown 编写格式规范的命令行工具 lint-md
  2. 特斯拉致命车祸最新调查结果发布
  3. 《TensorFlow技术解析与实战》——导读
  4. .NET福利集锦【持续整理中】
  5. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十七:TFT模块 - 显示
  6. 暑期大作战 第五天(第四天待补)
  7. ActiveMQ学习笔记03 - 消息持久化
  8. 认识登录控件(Login、CreateUserWizard、LoginStatus和LoginName)
  9. Jquery属性选择器(同时匹配多个条件,与或非)(附样例)
  10. PostgreSQL 业务数据质量 实时监控 实践