maven 入门介绍
- Maven是什么?
Maven: 中文翻译,"专家"。基本上有两个用途
一是构建工具, 用来把源代码构建成可发布的构件。类似于ant;
另外一个是项目管理工具。
官方给出的定义是:
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
- Maven中的关键词
Project : 任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。
POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。
GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。
Dependency:为了能够build或运行,一个典型的Java工程会依赖其它的包。在Maven中,这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。
Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。
Repository:仓库用于存放artifact,它可以是本地仓库,也可以是远程仓库。Maven有一个默认的远程仓库--central,可以从http://www.ibiblio.org/maven2/下载其中的artifact。在Windows平台上,本地仓库的默认地址是User_Home\.m2\repository。
Snapshot:工程中可以(也应该)有一个特殊版本,它的版本号包括SNAPSHOT字样。该版本可以告诉Maven,该工程正处于开发阶段,会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动下载、使用该最新版。 - Maven 下载安装(Windows)
http://maven.apache.org/download.html
下载最新版本 Maven 3.0.4 (Binary zip)
解压到D: 盘.(因为Maven是基于java的, 所以必须先安装JDK并设置了 JAVA_HOME变量。)
新增以下环境变量-
MAVEN_HOME : D:\apache-maven-3.0.2
MAVEN : %MAVEN_HOME%\bin
(可选) MAVEN_OPTS : -Xms256m -Xmx512m在path 前面 加上 %MAVEN%;
到此, 安装完成。
可以在命令行输入: mvn -version 。 来验证安装是否成功。 - Maven入门实例
1) 新建项目my-app.
首先使用cd 切换到放置项目的路径,然后在命令行敲入mvn archetype:create -DgroupId=com.tootuu.app -DartifactId=my-app
如果是首次运行这个命令, 这个命令的运行时间会比较长, 因为会下载一些最新的工具包(artifacts)到你的本地仓库(User_Home\.m2\repository)
命令执行完成,会生成一个 my-app的目录。(改该目录下有一个pom.xml文件和一个src的文件夹。src/main/java 目录包含了项目的源代码,src/test/java 目录包含了项目的测试代码 自动生成com.tootuu.app.App.java的一个Hello world的测试文件)
2) 编译打包mvn package
执行完成后, 在my-app目录下会生成target 目录, 里面有产生的my-app-1.0-SNAPSHOT.jar 打包档。
3) 接下来就可以使用Java 命令来运行这个jar档了java -cp target/my-app-1.0-SNAPSHOT.jar com.tootuu.app.App
打印出 "Hello World!"
- 常用命令。(mvn XXX)
mvn archetype:create :创建 Maven 项目
validate:验证工程是否正确,所有需要的资源是否可用。
compile:编译项目的源代码。
test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
Package:把已编译的代码打包成可发布的格式,比如jar。
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
verify:运行所有检查,验证包是否有效且达到质量标准。
install:把包安装在本地的repository中,可以被其他工程作为依赖来使用。
Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
clean:清除先前构建的artifacts(在maven中,把由项目生成的包都叫作artifact)。
site:为项目生成文档站点。 - 参考资源
[1]Maven官方网站. http://maven.apache.org
[2]Maven POM文件参考结构. http://maven.apache.org/ref/current/maven-model/maven.html
[3]Super POM. http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
[4]Maven主要插件的列表. http://maven.apache.org/plugins
[5]Maven基本使用指南. http://maven.apache.org/guides/index.html
[6]Better Build with Maven. http://www.mergere.com/m2book_download.jsp -- 强烈推荐
[7]介绍Maven2. http://www.javaworld.com/javaworld/jw-12-2005 /jw-1205-maven_p.html
[8]揭秘Maven2 POM. http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html
[9]Maven让事情变得简单. http://www-128.ibm.com/developerworks/cn/java/j-maven
[10]Maven文档集. http://docs.codehaus.org/display/MAVENUSER/Home
[11]有效利用Maven2的站点生成功能. http://www.matrix.org.cn/resource/article/44/44491_Maven2.html
文中例子程序下载:http://www.blogjava.net/files/jiangshachina/maven.rar
maven 入门介绍相关推荐
- Maven 持续介绍与注意事项
本篇承接上一篇: maven 入门介绍 POM POM 代表工程对象模型.它是使用 Maven 工作时的基本组件,是一个 xml 文件.它被放在工程根目录下,文件命名为 pom.xml. 能够在 PO ...
- Maven学习总结(一)——Maven入门
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...
- SpringBoot 2.0 系列001 -- 入门介绍以及相关概念
为什么80%的码农都做不了架构师?>>> SpringBoot 2.0 系列001 -- 入门介绍以及相关概念 什么是SpringBoot? 项目地址:http://proje ...
- Maven学习(一)——Maven入门
为什么80%的码农都做不了架构师?>>> 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服 ...
- Maven入门指南(一)
原文链接 译文链接 译者:nkcoder 校对:方腾飞 Maven介绍: Maven是一个强大的Java项目构建工具.当然,你也可以使用其它工具来构建项目,但由于Maven是用Java开发的,因 ...
- Spring Cloud 全家桶 入门介绍
Spring Cloud 全家桶 入门介绍 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌 ...
- 分布式事物框架Easy-Transaction--使用入门介绍
分布式事物框架Easy-Transaction--使用入门介绍 The origin This framework is inspired by a PPT (<大规模SOA系统的分布式事务处理 ...
- 【转】Maven 入门
[转]http://www.blogjava.net/jiangshachina/archive/2006/09/01/67080.html Maven入门--概念与实例 最近由于工作原因在研究.应 ...
- maven 入门(转)
Apache Maven 入门篇 ( 上 ) 作者:GeorgeMa 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven不是那么了解,所以就有了这个想法. 这个 ...
最新文章
- JavaScript复制内容到剪贴板
- Android自定义app图标,自定义app图标(Icon) - Cordova中文网
- Winform中实现将照片剪贴到系统剪切板中(附代码下载)
- word2vec中文类似词计算和聚类的使用说明及c语言源代码
- 模拟退火总结+洛谷模板题(P1337 [JSOI2004]平衡点 / 吊打XXX)
- 论文浅尝 | 基于知识图谱的智能调研方法(DI佳作)
- 线程也不是越多越好,多少是好?
- html中为什么style中不显示发光点,css实现发光文字,以及一点点js特效
- 开源云原生平台 Apache Kafka暴露多家大企业的敏感数据
- 算法优化策略之“中途相遇”算法思想
- windows定时截屏小工具
- 从两年一次到一年三次,百度频繁调整架构为哪般?
- 关于安卓上pcm文件转wav全是噪音解决办法
- 【Python基础】3-语法进阶
- 新版标准日本语初级_第三十课
- 马士兵java ppt_[马士兵JAVA教程课件.ppt
- 修改新网域名DNS服务器到DNSPOD解析服务
- 有关 英语学习的一些网站
- SQLServer数据库基本操作(一)
- 腾讯大讲堂之精益设计
热门文章
- pure-ftp 修改用户信息
- 谨防职业病 IT人士必不可少的四类食物
- sudo -u hdfs hdfs balancer出现异常 No lease on /system/balancer.id
- 【免费下载】2021年6月份热门报告盘点
- 研究生必备自学课程!打好科研的数学基础与机器学习基础!
- 网站前后端交互学习有感
- mysql跳过安全_几年了,作为一个码农终于把MySQL日记看懂了!
- java连接mysql表格_java中表格连接数据库
- Linux中重定向的实验总结,Linux中重定向命令行的总结
- Leetcode每日一题:198.house-robber(打家劫舍)