Maven 杂记三
来源:互联网 发布:牡医学院网站网络教学 编辑:程序博客网 时间:2024/05/19 20:48
1 关键名词Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。
一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。
POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。
GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,
将一个工程从其它有类似名称的工程里区别出来。
Artifact:artifact 是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。
每个artifact都由groupId和 artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中,
否则Maven无法找到(识别)它们。
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/maven/下载其中的artifact.在Windows平台上,本地仓库的默认地址是User_Home/.m2/repository.
Snapshot:工程中可以(也应该)有一个特殊版本,它的版本号包括SNAPSHOT字样。该版本可以告诉Maven,该工程正处于开发阶段,
会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动下载、使用该最新版。
2 Maven Build Life Cycle软件项目一般都有相似的开发过程:准备,编译,测试,打包和部署,Maven将上述过程称为Build Life Cycle.
在Maven中,这些生命周期由一系列的短语组成,每个短语对应着一个(或多个)操作;或对应着一个(或多个)goal(类似于Ant中的 target)。
如编译源文件的命令mvn compile中的compile是一个生命周期短语。同时该命令也可以等价于mvn compiler:compile,其中的compiler是一个插件,
它提供了compile(此compile与mvn compile中的compile意义不同)goal;compiler还可提供另一个goal——testCompile,
该goal用于编译 junit测试类。
在执行某一个生命周期时,Maven会首先执行该生命周期之前的其它周期。
如要执行compile,那么将首先执行validate,generate- source,process-source和generate-resources,
最后再执行compile本身。关于Maven中默认的生命周期短语,请见参考资源[6]中的附录B.3.
- Maven 杂记三
- Maven杂记
- 杂记<三>
- Maven 杂记一
- erlang杂记三 ---- 进程
- MVC杂记<三>---Controller
- Pomelo杂记(三)
- 工作杂记(三)
- Python学习杂记三
- 代码杂记(三)
- ios学习杂记三
- 项目杂记三
- 工作杂记三
- Maven学习——杂记
- Qt开发杂记(三)
- linux学习杂记(三)
- tcp/ip详解----杂记三
- erlang杂记三 --- 服务器抽象
- Android入门到精通(二) (应用程序基本元素与结构)
- Maven 杂记二:maven2完全使用手册
- Python三目运算,and or陷阱
- 数的整除性质
- 一个浮动+触发的js代码
- Maven 杂记三
- Android Intent 使用整理
- JAX-WS发布WebService实践1:——整数四则运算器
- 求助:无法卸载:一个或多个应用程序需要此程序集
- 发送已创建用户电子邮件通知
- UVa 10131 Is Bigger Smarter?
- Maven 杂记四:安装自己的jar包
- 40个迹象表明你还是PHP菜鸟
- 平台崩溃之operator new异常(九)-2010-5-20