Maven简介
来源:互联网 发布:dnf深渊补丁软件 编辑:程序博客网 时间:2024/06/16 19:58
Maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。- 麦文
- Maven
- 项目对象模型
- java
- 项目构建管理
目录
那么,Maven 和 Ant 有什么不同呢?在回答这个问题以前,首先要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant代表两个差异很大的工具,所以接下来只说明这两个工具的等同组件之间的区别,如表 1 所示。[1]MavenAnt标准构建文件project.xml 和 maven.xmlbuild.xml特性处理顺序${maven.home}/bin/driver.properties${project.home}/project.properties${project.home}/build.properties${user.home}/build.properties通过 -D 命令行选项定义的系统特性最后一个定义起决定作用。通过 -D 命令行选项定义的系统特性由 任务装入的特性第一个定义最先被处理。构建规则构建规则更为动态(类似于编程语言);它们是基于 Jelly 的可执行 XML。构建规则或多或少是静态的,除非使用<script>任务扩展语言插件是用 Jelly(XML)编写的。插件是用 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:generate 创建Maven项目mvn compile 编译源代码mvn deploy 发布项目mvn test-compile 编译测试源代码mvn test 运行应用程序中的单元测试mvn site 生成项目相关信息的网站mvn clean 清除项目目录中的生成结果mvn package 根据项目生成的jarmvn install 在本地Repository中安装jarmvn eclipse:eclipse 生成eclipse项目文件mvnjetty:run 启动jetty服务mvntomcat:run 启动tomcat服务mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类发文时中文版对maven介绍比较全的书籍是《Maven实战》首先要安装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文件,123456789101112131415161718<
projectxmlns
=
"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.0http://maven.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
>MavenQuickStartArchetype</
name
>
<
url
>http://maven.apache.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包12345<
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 cleanb. 在Myeclipse中,Project—Clean 开始编译c. 选中Maven Project 右击 在Run As中选择Maven install执行完这几步,如果没发生异常,会在project里生成一个target文件夹,这个文件夹里的东西,就是Maven打包发布的东西。Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。clean(清理)cleanup(清理所有)此生命周期旨在给工程做清理工作,它主要包含以下阶段: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服务器部署站点生成文件。[2]Maven生命周期参考:Apache Maven Project[2] ,书籍《Maven In Action》顶级项目 ▪ 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
阅读全文
0 0
- Maven简介
- Maven简介
- Maven简介
- Maven简介
- Maven简介
- Maven简介
- maven简介
- Maven简介
- Maven简介
- maven 简介
- maven简介
- maven简介
- Maven简介
- maven 简介
- maven简介
- Maven简介
- maven简介
- Maven简介
- Transaction check error:
- 解锁VMware pro 14 Mac Os X 13 安装选项下载
- hdu 4101 bfs+博弈
- 每天学算法
- Mac 使用SCP 上传和下载文件
- Maven简介
- js鼠标进度条失去焦点拖动
- 函数
- android7.0 获取uri
- kafka的消息消费机制、consumer的负载均衡、文件存储机制
- 4招搞定greenDAO导致的各类崩溃问题
- shell 基础
- javascript实现日历效果
- 安卓布局文件无法预览第三方控件