`
yanguz123
  • 浏览: 576671 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

\(^_^)/ Maven资料

 
阅读更多

Maven实战博客:http://tangyanbo.iteye.com/category/220107

Maven入门:http://wentao365.iteye.com/blog/903396

Maven实战:http://juvenshun.iteye.com/category/34725

Maven教程:http://www.yiibai.com/maven

Maven入门博客:http://www.blogjava.net/jiangshachina/archive/2006/09/01/67080.html

Maven实战安装、配置、入门:http://hzbook.group.iteye.com/group/wiki/2872-Maven-in-action/

Maven开源项目:http://maven.oschina.net/home.html

Eclipse Maven:http://dead-knight.iteye.com/blog/1841658

Eclipse 构建Maven项目:http://blog.chinaunix.net/uid-26959955-id-3248053.html

IBM Maven:https://www.ibm.com/developerworks/cn/java/j-maven/

Oracle Maven:http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html

使用Eclipse构建Maven的SpringMVC项目:http://limingnihao.iteye.com/blog/830409

 

 

 

 

 

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

发文时,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它信息(如开发人员/拥有者、版本或站点主页)。

Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。

 

Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解,第一,顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义。第二,这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn clean install 这样的命令是通用的。

 

 

那么,Maven 和 Ant 有什么不同呢?在回答这个问题以前,首先要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant 代表两个差异很大的工具,所以接下来只说明这两个工具的等同组件之间的区别。

 

 

Maven

Ant

标准构建文件

project.xml maven.xml

build.xml

特性处理顺序

1.${maven.home}/bin/driver.properties

2.${project.home}/project.properties

3.${project.home}/build.properties

4.${user.home}/build.properties

5.通过 -D 命令行选项定义的系统特性

最后一个定义起决定作用。

1.通过 -D 命令行选项定义的系统特性

2. 任务装入的特性

第一个定义最先被处理

构建规则

构建规则更为动态(类似于编程语言);它们是基于 Jelly 的可执行 XML

构建规则或多或少是静态的,除非使用<script>任务

扩展语言

插件是用 JellyXML)编写的。

插件是用 Java 语言编写的。

构建规则可扩展性

通过定义 <preGoal> <postGoal> 使构建 goal 可扩展。

构建规则不易扩展;可通过使用 <script> 任务模拟 <preGoal> <postGoal> 所起的作用。

 

 

 

 

 

 

 

 

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

 

 

常用命令:

mvn archetype:create 创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvnjetty:run 启动jetty服务

mvntomcat:run 启动tomcat服务

mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

 

 

 

 

Win7配置:

首先要安装Jdk1.6 和 Myeclipse7.5 。

1. Maven有一个重要的文件"settings.xml“,这个文件来源于apache-maven-2.0.8/conf/ 下,要放在window下, Win7和Winxp还是有点不一样 , Win7 ---C:\Users\用户名\.m2 , Winxp ---C:\Documents and Settings\用户名\.m2 。

2. 设置Maven的环境变量,基本上和设置Jdk环境变量相似,首先设置MAVEN_HOME,再加入Path 。

3. 修改”settings.xml” 文件,在这个文件中找到<localRepository>d:/work</localRepository>这一行,进行修改。这一行代表了Maven的Jar包仓库的位置。work下放的都是项目所用到的jar包,每个Project都可以共用一个work。

4. Myeclipse7.5及以上版本本身自带Maven插件。如果使用低版本的Myeclipse需要安装插件,在help菜单中选择software updates,选择find and install,选择search for new features to install-选择new remote site。写入 name:maven URL:http:// m2eclipse.codehaus . org/update/去下载相关jar包和插件。

5. 在Myeclipse中windows-perferences中,在下图的位置上,查看users settings的路径是否正确。

6. 建立Maven的project,File--new—other—Java Maven Project。

7. 然后打开project里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 .o rg/POM/4.0.0http: //m aven.apache . org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>maventest</groupId>

<artifactId>maventest</artifactId>

<packaging>jar</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>Maven Quick Start Archetype</name>

<url>http:// maven.apac he. org</url>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

</dependencies>

</project>

在这xml文件中添加Maven所依赖的Jar的名称,也就是添加<dependency></dependency>节点。

例如:添加大家常用的Struts Jar包

<dependency>

<groupId>org.apache.struts</groupId>

<artifactId>struts2-core</artifactId>

<version>2.0.11</version>

</dependency>

8. 到发文时为止,环境就算搞定了。接下来要应用Maven来打包Project为大家服务的。

在cmd中的命令:

a. mvn eclipse:clean 清除Project中以前的编译的东西,重新再来

b. mvn eclipse:eclipse 开始编译Maven的Project

在Myeclipse中的操作:

a. 选中Maven Project 右击 在Run As中选择Maven clean

b. 在Myeclipse中,Project—Clean 开始编译

c. 选中Maven Project 右击 在Run As中选择Maven install

执行完这几步,如果没发生异常,会在project里生成一个target文件夹,这个文件夹里的东西,就是Maven打包发布的东西。

 

 

 

 

Maven生命周期:

 

Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

 

再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。

 

mvn clean 中的clean就是上面的clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,mvn clean 等同于 mvn pre-clean clean ,如果我们运行 mvn post-clean ,那么 pre-clean,clean 都会被运行。这是Maven很重要的一个规则,可以大大简化命令行的输入。

 

下面看一下Site生命周期的各个阶段:

pre-site     执行一些需要在生成站点文档之前完成的工作

site    生成项目的站点文档

post-site     执行一些需要在生成站点文档之后完成的工作,并且为部署做准备

site-deploy     将生成的站点文档部署到特定的服务器上

 

运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包。

 

Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。 

clean(清理)

此生命周期旨在给工程做清理工作,它主要包含以下阶段:

pre-clean - 执行项目清理前所需要的工作。

clean - 清理上一次build项目生成的文件。

post-clean - 执行完成项目清理所需的工作.

default(默认)

validate - 验证项目是否正确且所有必要的信息都可用。

initialize - 初始化构建工作,如:设置参数,创建目录等。

generate-sources - 为包含在编译范围内的代码生成源代码.

process-sources - 处理源代码, 如过滤值.

generate-resources -

process-resources - 复制并处理资源文件,至目标目录,准备打包。

compile - 编译项目中的源代码.

process-classes - 为编译生成的文件做后期工作, 例如做Java类的字节码增强.

generate-test-sources - 为编译内容生成测试源代码.

process-test-sources - 处理测试源代码。

generate-test-resources -

process-test-resources - 复制并处理资源文件,至目标测试目录。

test-compile - 将需测试源代码编译到路径。一般来说,是编译/src/test/java目录下的java文件至目标输出的测试classpath目录中。

process-test-classes -

test - 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。

prepare-package -

package - 接受编译好的代码,打包成可发布的格式,如 JAR 。

pre-integration-test -

integration-test - 按需求将发布包部署到运行环境。

post-integration-test -

verify -

install -将包安装到本地仓库,给其他本地引用提供依赖。

deploy -完成集成和发布工作,将最终包复制到远程仓库以便分享给其他开发人员。

site(站点)

pre-site - 执行一些生成项目站点前的准备工作。

site - 生成项目站点的文档。

post-site - 执行需完成站点生成的工作,如站点部署的准备工作。

site-deploy - 向制定的web服务器部署站点生成文件。

 

 

 

 

 

Apache软件基金会

 

顶级项目

▪ ActiveMQ▪ Ant▪ Apache HTTP Server▪ APR

▪ Beehive▪ Camel▪ Cassandra▪ Cayenne

▪ Cocoon▪ Commons▪ Derby▪ Directory

▪ Excalibur▪ Felix▪ Forrest▪ Geronimo

▪ Gump▪ Hadoop▪ Harmony▪ HBase

▪ iBATIS▪ Jackrabbit▪ James▪ Lenya

▪ Lucene▪ Maven▪ mod_perl▪ MyFaces

▪ OFBiz▪ OpenEJB▪ OpenJPA▪ POI

▪ Roller▪ Shale▪ SpamAssassin▪ stdcxx

▪ Struts▪ Subversion▪ Tapestry▪ Tomcat

▪ Traffic Server▪ Tuscany▪ Velocity▪ Wicket

▪ XMLBeans

 

其他项目

▪ Jakarta项目▪ Apache XML▪ Apache Incubator

 

子项目

▪ BCEL▪ BSF▪ Cactus▪ JMeter

▪ Slide▪ Xerces▪ Batik▪ FOP

▪ Log4j▪ XAP▪ River▪ ServiceMix

▪ Log4Net▪ Abdera▪ Ivy▪ CXF

▪ ODE▪ Solr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    jfinal-4.9.01_demo_for_maven.zip

    本资源"jfinal-4.9.01_demo_for_maven.zip"提供了一个基于Maven构建的JFinal项目实例,旨在帮助开发者快速理解和上手JFinal框架,尤其对于那些在寻找相关下载资源时遇到困难的朋友们,此分享无疑是一份宝贵的资料。...

    基于SSM框架构建积分系统和基本商品检索系统源码.zip

    ### J2EE项目系列(四)–SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis+Lucene+Redis+MAVEN) #### 并附带一系列的博客文章: #### (一)[项目框架整合构建]...

    testpush:maven安装 javapns demo iOS推送java jersey服务器

    并结合其他网友贡献的资料,做以下工作: 终端中执行 vi ~/.bash_profile 然后输入 M3_HOME=/usr/local/maven/maven3.2.1 PATH=$M3_HOME/bin:$PATH 按下esc键输入:wq 然后在终端输入 mvn -version 如果能输出类似 ...

    myeclipse_java项目转maven项目.pdf

    在开发Java项目时,Maven已经成为了一种标准的构建工具,它可以帮助开发者管理项目依赖、构建过程以及自动化测试。然而,对于那些原本不是基于Maven构建的项目,我们需要将其转换成Maven项目来利用其优势。这个过程...

    maven使用文档,maven使用文档

    10. **参考资料** - [Apache Maven 官方网站](http://maven.apache.org/) - [Maven 使用手册](http://maven.apache.org/guides/) - [Maven 最佳实践](http://www.mergere.com/m2book_download.jsp) - [Maven ...

    使用GitHub搭建Maven私库

    #### 参考资料 - [如何在GitHub上搭建私有Maven仓库](https://blog.csdn.net/hwangfantasy/article/details/69389766) #### 维护记录 | 编号 | 日期 | 维护内容 | 维护人员 | 版本 | |------|------------|------...

    maven教案-maven入门学习资料

    【 Maven 概述】 在软件开发中,尤其是在Java领域,我们常常面临一系列问题,如环境配置差异、依赖管理混乱以及项目构建的繁琐等。这些问题在 Maven 出现后得到了很好的解决。Maven 是一个强大的项目管理工具,由 ...

    配置文件pom.xml

    Windows下Eclipse配置Appium环境资料 &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...

    基于SSM+Bootstrap的教务查询系统源码+数据库+项目说明(本科毕设).zip

    运行环境 jdk8+tomcat8+mysql+Eclipse+maven 项目技术: spring+spring mvc+mybatis+bootstrap+jquery 前人栽树后人乘凉,最开始系统是IDEA开发,目前该版本修改为了eclipse版本,增加和删除了某些功能。 欢迎下载。...

    Eclipse+maven开发环境搭建

    ### Eclipse+maven开发环境搭建详解 #### 一、前言 在软件开发过程中,构建一个高效稳定的开发环境至关...希望这篇文章对您有所帮助,如果您在配置过程中遇到任何问题,可以在网上查找更多相关资料或寻求社区的帮助。

    Maven资料大合集

    通过这份Maven资料大合集,你将能够全面了解Maven的工作原理,熟练掌握Maven的使用技巧,并能在实际项目中运用自如。无论你是想要快速入门,还是提升Maven使用水平,这套资料都能提供宝贵的指导。

    maven安装.txt

    - 提供了丰富的文档资料,包括用户手册、常见问题解答等。 7. **插件列表:** - [Maven 插件列表](http://maven.apache.org/plugins/index.html) - Maven 支持大量的插件来扩展其功能,这里列出了所有可用的插件...

    Maven项目架构工具配置资料

    ### Maven项目架构工具配置知识点详解 #### Maven简介与核心功能 Maven,直译为“专家”、“内行”,是一款由Apache基金会维护和支持的纯Java开发的开源项目管理工具。其设计初衷是通过一个中央信息片段(即POM...

    很好的学习Maven资料

    ### Maven项目管理工具详解 #### 一、Maven概述 Maven是一款强大的开源项目管理和理解工具,它由纯Java编写而成。Maven的核心优势在于它引入了“项目对象模型”(Project Object Model,简称POM)的概念。POM是...

    maven-real-data.rar_Real_maven

    《Maven实战》一书是Java开发者不可或缺的参考资料,它深入浅出地讲解了Maven这一强大的项目管理和构建工具。Maven通过一个统一的构建语言,简化了项目的构建过程,使得开发者可以更专注于代码本身,而不是项目的...

    maven3教程

    ### Maven3 教程知识点概览 #### 一、Maven3简介 - **Maven定义**:Maven,意为“知识的积累”、“专家”或“内行”。它是Apache基金会下的一个开源项目,主要服务于Java平台上的项目构建、依赖管理和项目信息管理...

    my ReadBook_baozhuangxue / baozhuanggailun / 273154301

    标题 "my ReadBook_baozhuangxue / baozhuanggailun / 273154301" 提示我们关注的主题是关于“包装学”或“打包理论”,可能是某个课程、教程或者讨论组的资料。由于描述是 "NULL",我们无法直接获取具体内容,但...

    Maven教程资料.pdf

    在Java开发领域,Maven是一个极其重要的构建工具,它简化了项目的构建、管理和依赖管理过程。本篇教程将带你深入理解Maven的核心概念和基本操作。 首先,Maven是一个基于项目对象模型(Project Object Model,简称...

Global site tag (gtag.js) - Google Analytics