Maven学习总结
2011-07-20 15:32
323 查看
1.Maven是什么?
首先Maven是一个项目管理工具,基于项目对象模型(POM),它主张遵循"约定优于配置"这个思想。 Maven 通过给项目提供明智的默认行为来融合这个思想。 在没有自定义的情况下,源代码假定在 {basedir}/src/main/java,资源文件假定是在{basedir}/src/main/resources 。测试代码假定是在 {basedir}/src/test 。虽然,一开始觉得Maven这么做有些霸道,但是只要我们遵循这些约定,Maven 可以使我们的项目运行更快,并且能够很方便的帮你管理项目报告,生成站点,管理JAR文件。Maven 的核心其实不做什么实际的事情,它就是一个管理者,负责解析一些 XML 文档,管理生命周期与插件。因此,Maven 被设计成将主要的职责委派给一组 Maven插件,这些插件影响 Maven生命周期,执行对目标的访问。也就是说,Maven大部分的智能是由插件实现的,而插件从 Maven 仓库获得,这些Maven插件是一个单个或多个目标的集合。例如:Maven Archetype 插件的一个命令mvn archetype:create 其中archetype:create是一个Maven目标,archetype是一个插件标识,create是目标标识。
2.本地仓库(localRepository)
第一次运行时maven将从远程仓库下载构件和插件到你本机上,存储在你的本地Maven仓库里。一旦 Maven 已经从远程仓库下载了一个构件,它将永远不需要再下载一次,因为 maven会首先在本地仓库查找插件,然后才是其它地方。在Maven的安装目录下,conf/ 目录包含了一个全局的 settings.xml文件,该文件用来自定义你机器上 Maven 的一些行为。该文件包含了用户相关的认证,仓库和其它信息的配置,用来自定义 Maven 的行为。Maven默认的本地的仓库目录是~/.m2/repository/,当你从远程 Maven 仓库下载依赖的时候,Maven 在你本地仓库存储了这个依赖的一个副本。当然你也可以更改本地仓库的位置,只要修改settings.xml文件中的localRepository属性 就可以,如下代码所示: 修改后你的本地仓库地址就是D:/maven-2.1.0/repo
3.Pom文件
Maven中最基础的是Pom.xml文件,该文件中定义了项目的坐标,以及项目所需依赖关系和插件行为。一个Maven坐标可以用来唯一标识一个项目, 一个依赖,或者Maven POM 里的一个插件,坐标由groupId, artifactId, version 和 packaging组成,结构如下所示:groupId:artifactId:packaging:version(mavenbook:my-app:jar:1.0-SNAPSHOT.)
当我们新建一个工程后,pom文件会自动产生项目坐标信息,例如通过命令行建立一个web工程:
mvn archetype:create \-DgroupId=my.test.maven \-DartifactId=demo.web \-DpackageName=my.test \-DarchetypeArtifactId=maven-archetype-webapp
这个web工程的坐标信息如下:
com.***.roma.demo demo.web war 1.0-SNAPSHOT
pom文件中通过dependency属性定义依赖,plugin属性定义插件。
依赖:
log4j log4j 1.2.14
插件:
org.mortbay.jetty maven-jetty-plugin 6.1.9
4.经常使用的Maven命令
1. 创建Maven的普通java项目:mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
2. 创建Maven的Web项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
3. 编译源代码: mvn compile
4. 编译测试代码:mvn test-compile
5. 运行测试:mvn test
6. 产生site:mvn site
7. 打包:mvn package
8. 清除产生的项目:mvn clean
9. 生成eclipse项目:mvn eclipse:eclipse
10. 编译测试的内容:mvn test-compile
11. 只打jar包: mvn jar:jar
12. 当开发一个带有很多失败单元测试的系统
mvn test -Dmaven.test.failure.ignore=true
13. 想要整个的跳过测试
mvn install -Dmaven.test.skip=true
相关文章推荐
- Maven学习总结(八)——使用Maven构建多模块项目
- Maven学习总结:几个常用的maven插件
- Maven学习总结(九)——使用Nexus搭建Maven私服
- Maven学习总结(一)——Maven入门
- Maven学习总结(21)——Maven常用的几个核心概念
- Maven学习总结(3)——使用Maven构建项目
- Maven学习总结(6)——Maven与Eclipse整合
- Maven学习总结(18)——深入理解Maven仓库
- Maven学习总结(12)——eclipse中构建多模块maven项目
- Maven学习总结(六)——Maven与Eclipse整合
- Maven学习总结(八)——使用Maven构建多模块项目
- Maven 学习总结——构建java项目和java web项目
- Maven学习总结(三)——使用Maven构建项目
- Maven学习总结(18)——深入理解Maven仓库
- Maven学习总结(15)——Maven 项目中pom.xml详解
- Maven学习总结(三)——手动将本地jar导入仓库
- Maven学习总结(24)——Maven版本管理详解
- Maven学习总结系列五:仓库
- Maven深入学习(四)- 知识总结
- Maven学习总结(一)——Maven入门