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>节点,可根据自己实际环境设置。
分享到:
相关推荐
本资源共有7个文档,从入门到精通,从简单配置到整合项目。
超详细Maven快速入门到精通.txt打包整理.zip
有关maven入门到精通的详细介绍
Maven入门到精通. 做好人不要资源分
Maven从入门到精通;Maven——web 应用进阶——简单多模块项目;
maven 入门到精通
jetpack从入门到精通.pdf 系统性的介绍 jetpack 组件的基础学习资料 ,带大家完整的学习Jetpack组件,由浅入深。 官网学习地址:https://developer.android.google.cn/jetpack/getting-started Jetpack 是一个由多...
超详细Maven快速入门到精通[视频课程].txt打包整理.zip
Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了...
maven安装与配置
JAVA架构从入门到精通开发笔记PPT 连接阿里云服务器 数据库 git版本管理 linux常用命令 yum软件包管理 maven依赖 数据库优化 分库分表 文件处理
Maven 入门到精通,高清带书签, 个人推荐书籍
此项目为springmvc、...而且有些jar包私服中肯定没有,需要手动从activiti5官方下载然后再上传到私服中 使用spring的带事物的单元测试,这样就不会破坏数据库原场 然后通过maven 命令: tomcat7:run deploy 运行 ...
Maven,From Zero to Hero。从入门到精通,从小白到大牛。 学到就是赚到,开始HelloWorld之旅吧,你可以的。
另外,其中还提供一整套功能列表,包括向值附加字符串、从特定目录中提取字符以及利用字符串在开始与结束间返回数组等等。 三、键值存储 Chronicle Map是一套内存内键值存储方案,其设计目标在于实现低延迟与/或多...
Maven实战,许晓斌作品,从入门到精通
1、持续集成及Jenkins介绍 2、Jenkins安装和持续集成环境配置 3、Jenkins构建Maven项目 4、Jenkins+Docker+SpringCloud微服务持续集成 5、基于Kubernetes/K8S构建Jenkins微服务持续集成平台
maven入门到精通资料,非常实用,个人保存上传分享