1.概述
Apache Maven一个潜在的基于java的apache ant的构建工具的替代者。两者之间的比较:
一、ant脚本是可以直接运行在maven中的。maven和ant最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM(project object model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹。
二、Maven对所依赖的包有明确的定义,如使用哪个包,版本是多少,一目了然。而ant则通常是简单的inclde 所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib下的common-logging 是哪个版本的,唯一的方法就是打开 META-INF 目录下MANIFEST.MF。估计JBoss迟早会转向Maven的。
三、Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。
四、maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。而ant都需要自己去写。试试 maven site 的效果。
第五:maven目前不足的地方就是没有象ant那样成熟的GUI界面,不过mavengui正在努力中。目前使用maven最好的方法还是命令行,又快又方便。
2.安装
下载Maven.目前的版本是3.0.3
http://maven.apache.org/download.html#Maven_Documentation
解压缩后,新建环境变量Maven_Home到maven目录;在环境变量path中增加maven的bin目录。
在命令行输入
Mvn -version
显示
Maven version: 3.0.3
则安装成功。
3.生成一个Maven工程
在命令行中,进入你常用的项目文件夹,输入
mvn archetype:create -DgroupId=com.maven.test -DartifactId=maven-demo
如果网络配置(详见5)正确,maven就会下载需要的文件,执行任务,最终显示“BUILD SUCCESSFUL”,并生成maven-demo目录。
让我们看一下mvn对项目标准的目录组织:
directory description
/maven-demo/pom.xml 描述项目对象模型(Project Object Model)。
/maven-demo/src/ Sources
/maven-demo/src/main/java/ Java source tree
/maven-demo/src/test/java/ Java unit tests
/maven-demo/src/main/resources/ Java classpath resources
/maven-demo/src/test/resources/ Resources for unit-tests
/maven-demo/target/classes/ compiles classes
/maven-demo/target/test-classes/ compiles test classes
/maven-demo/target/dots other plugins' output
/maven-demo/src/main/webapp root of webapp
Build the project 构建项目
cd 到maven-demo目录下,执行下面命令
mvn package
此命令执行的过程有:
1、validate
2、generate-sources
3、process-sources
4、generate-resources
5、process-resouces
6、compile
你可以通过以下命令测试新编译和打包的jar文件
java -cp target/maven-demo-1.0-SNAPSHOT.jar com.maven.test.App
输出以下结果:
Hello World!
4.Maven 常用命令
maven定义的默认的生命周期命令
• validate: 验证项目是否正确以及相关信息是否可用
• compile: 编译工程源代码
• test: 运行测试
• package: 根据事先指定的格式(比如jar),进行打包。.
• integration-test: 部署到运行环境中,准备进行集成测试
• verify: 对包进行有效性性和质量检查
• install: 安装到本地代码库
• deploy: 在集成或发布环境,将包发布到远程代码库.
除了默认生命周期外的两阶段
• clean: 清除以前的构建物
• site: 生成项目文档
可以通过对目标及命令的组合使得一个命令完成多个功能,比如:
mvn clean dependency:copy-dependencies package
此命令将清理项目、复制所依赖的包、对工程进行打包
相当于按顺序执行
mvn clean
mvn dependency:copy-dependencies
mvn package
5. 网络设置
maven运行时需要网络环境。如果你的网络需要代理,则要在maven目录的conf/settings.xml中设置。
找到<proxies>节点,可根据自己实际环境设置。
分享到:
相关推荐
**Maven:从入门到精通系列教材** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和部署过程。本资源集合包括7个文档,旨在帮助初学者逐步掌握Maven,从基础配置到高级应用,全...
标题"超详细Maven快速入门到精通.txt打包整理.zip"表明这是一个关于Maven的全面教程,涵盖了从基础到高级的各个方面,旨在帮助用户快速掌握Maven的使用。Maven是一个Java项目管理和综合工具,由Apache软件基金会开发...
**Maven入门到精通** Maven,一个强大的Java项目管理工具,由Apache软件基金会开发,旨在简化构建过程,提供统一的构建系统,并通过依赖管理和项目信息管理,帮助开发者更高效地构建、测试和部署Java应用。它通过...
### Maven入门到精通知识点详解 #### 一、Maven简介及背景 - **Maven**是一种基于项目对象模型(POM)的软件项目管理和综合工具。它可以帮助开发者理解项目的构建周期和依赖关系,使得项目的构建过程自动化,提高了...
通过阅读《Maven从入门到精通的吐血之作.pdf》这样的文档,我们可以学到如何使用Maven来管理Web应用的开发。 一、知识准备 1.1 项目模型POM POM(Project Object Model,项目对象模型)是Maven中的核心概念,它是...
Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了...
jetpack从入门到精通.pdf 系统性的介绍 jetpack 组件的基础学习资料 ,带大家完整的学习Jetpack组件,由浅入深。 官网学习地址:https://developer.android.google.cn/jetpack/getting-started Jetpack 是一个由多...
本教程通过"超详细Maven快速入门到精通[视频课程].txt打包整理.zip",旨在帮助初学者快速掌握Maven的基本用法并逐步进阶到精通。 1. Maven基础: Maven基于项目对象模型(Project Object Model,POM),它定义了...
这篇“MyBatis入门到精通”的学习资料是针对初学者设计的,旨在帮助新手快速掌握MyBatis的基本用法和高级特性。 1. **MyBatis简介** MyBatis是由Clinton Begin创建的开源项目,它是一个基于Java的持久层框架,消除...
这个"Java Web从入门到精通光盘源码1-15"提供了学习者深入理解和实践Java Web应用开发的资源。以下是一些核心知识点的详细说明: 1. **Servlet与JSP**:Servlet是Java Web的基础,用于处理HTTP请求并生成动态响应。...
Starter poms是一系列预配置的Maven或Gradle依赖,它们帮助你快速添加所需的Spring模块。 在创建第一个Spring Boot项目时,你可以选择使用Spring Initializr,这是一个在线工具,可以生成一个包含基本依赖的项目...
### Maven 入门到精通 #### 一、Maven 概述 1. **定义**: - Apache Maven 是一个项目管理...通过以上内容的学习,可以系统地掌握Maven的使用方法,从入门到精通Maven的各项技术要点,从而更好地应用于实际项目中。
对于初学者和有经验的开发者来说,"Eclipse从入门到精通"是一本不可多得的教程,旨在帮助读者全面掌握Eclipse的使用技巧,提升开发效率。 首先,我们需要了解Eclipse的基础操作。这包括安装和配置Eclipse,设置工作...
起步依赖是Spring Boot提供的一种特殊形式的Maven或Gradle依赖,包含了一组预设的、相互协作的库,例如`spring-boot-starter-web`,它涵盖了开发Web应用程序所需的基础组件,如Spring MVC、Tomcat嵌入式服务器等。...
本资源包"springboot从入门到精通"旨在帮助初学者和进阶者全面掌握SpringBoot的核心概念和技术。 一、SpringBoot基础 SpringBoot的基础部分涵盖了如何创建第一个SpringBoot项目,通过起步依赖(Starters)简化Maven...
在"Java Web从入门到精通光盘17-2"中,我们可以预见到一系列关于这个主题的教程或实例,旨在帮助初学者和进阶者掌握Java Web开发的核心概念。 首先,Java Web开发主要涉及Servlet、JSP(JavaServer Pages)、JSTL...
总之,"魔乐科技:从入门到精通Java全部源码"是一个宝贵的教育资源,涵盖了Java学习的各个方面,无论你是初学者还是进阶者,都能从中受益匪浅。通过实际操作和不断练习,你将能够熟练掌握Java编程,为你的IT职业生涯...
【Java Web从入门到精通光盘18-21】是一个涵盖了Java Web开发基础到进阶的教程资源,旨在帮助初学者系统学习并掌握这一领域。在这个光盘中,你可能会遇到一系列关于Web应用程序开发的知识点,包括但不限于以下内容:...
【Spring Cloud Alibaba 从入门到精通1】 Spring Cloud Alibaba 是一套基于阿里巴巴集团内部中间件实践经验,为Java开发者提供的微服务解决方案。它旨在简化云原生应用的开发过程,尤其是在Spring Cloud生态中,...