Maven 学习笔记(三)
Maven生命周期
在上次我们使用maven package 对项目进行打包。这里就是为其指定一个生命周期。生命周期是包含在一个项目构建中的一系列有序的阶段。Maven有许多不同的生命周期,比如验证(validation),测试(testing),或者发布(deployment),不同的生命周期在项目中意味着不同的事情。比如在上面我们使用了 maven package 如果你仔细观察的话会发现在这之前还做了其他的事情,比如编译(compile),测试(test)。所以在maven完成 package 的时候会执行它之前所有的阶段,直到指定的阶段执行完毕。
Maven坐标
之前我们使用插件Archetype创建了一个maven项目,注意观察生成项目的pom文件这个里面包含了对这个项目的声明信息。当maven运行一个目标的时候,每个目标都会访问定义在项目POM里的信息。当运行不同的目标的时候会根据在pom中的定义来完成。在pom文件中我们会为项目定义一个唯一的标识名,也就是说提供了项目的一组唯一坐标,并且通过依赖 (dependencies) ,父 (parents) 和先决条件(prerequisite) 来定义和其它项目的关系,同时我们和可以为项目定义一系列的插件。
<project xmlns="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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.maven.demo01</groupId>
<artifactId>maven01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>maven01</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
groupId:
一般为这个项目所在的公司的逆向域名(reverse domain name)开头。
artifactId:
在 groupId 下的表示一个单独项目的唯一标识符。
version:
一个项目的特定版本。发布的项目有一个固定的版本标识来指向该项目的某一个特定的版本。而正在开发中的项目可以用一个特殊的标识,这种标识给版本加上一个“SNAPSHOT”的标记。
packaging:
项目的类型,默认是 jar ,描述了项目打包后的输出。类型为 jar 的项目产生一个JAR文件,类型为 war 的项目产生一个web应用。
注意的是:一个项目的 groupId:artifactId:version 构成一个独一无二的项目,所以你不能同时有一个拥有同样的 groupId , artifactId 和 version 标识的项目。
Maven仓库(Repositories)
当我们运行mavne的时候,你会注意到Maven从一个远程的Maven仓库下载了许多文文件。在一个maven项目中插件和项目的依赖都从远程仓库中下载出来的,当然如果你的网络不是很好的话,可以修改mavne的配置文件使其从国内的远程仓库中下载。
Maven依赖管理 (Dependency Management)
在第二节的例子中我们创建了一个简单的mavne项目,使用了unit:junit:3.8.1,如果你仔细注意的话会发现你的pom文件中有专门处理dependencies,那里面包含了一个单独的依赖JUnit。当然对于一个复杂的项目来说它的依赖可远远不止这些的。maven有一个强大的地方就是支持依赖的传递,这个我们以后会提到。
到这里我们可以自己手动的创建个maven的项目,并且了解一下上面提到的知识点!!!
Maven 学习笔记(三)的更多相关文章
- Maven学习笔记(三) :Maven使用入门
编写POM: Maven项目的核心是pom.xml.POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描写叙述项目怎样构建,声明项目依赖,等等. ...
- maven学习笔记三(依赖特性,作用域)
上一章中 我们看到了添加了个junit的依赖包.那么maven中想添加依赖的jar包我们只需要配置相应的dependency就行.例如: <dependency> <groupId ...
- Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...
- Maven学习笔记-04-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...
- MAVEN学习笔记之Maven生命周期和插件简介(3)
MAVEN学习笔记之Maven生命周期和插件简介(3) clean compile site三套生命周期相互独立. clean pre-clean 执行清理前的工作 clean 清理上一次构建生成的所 ...
- MAVEN学习笔记之私服Nexus(2)
MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Admin ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
随机推荐
- ubuntu 14.04查看java的安装路径
有时候,使用apt-get install 安装了某个软件之后,却不知道这个软件的安装路径在哪里. 那怎么样去找出这个软件的安装路径呢? 下面我们java 这个软件为例, 找出ubuntu 14.04 ...
- MySQL性能调优与架构设计——第 17 章 高可用设计之思路及方案
第 17 章 高可用设计之思路及方案 前言: 数据库系统是一个应用系统的核心部分,要想系统整体可用性得到保证,数据库系统就不能出现任何问题.对于一个企业级的系统来说,数据库系统的可用性尤为重要.数据库 ...
- MySQL 分表和分区
1.为什么需要分表和分区 在开发的过程中,经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,如果涉及联合查询的情况,性能更加 ...
- 快速排序—三路快排 vs 双基准
快速排序被公认为是本世纪最重要的算法之一,这已经不是什么新闻了.对很多语言来说是实际系统排序,包括在Java中的Arrays.sort. 那么快速排序有什么新进展呢? 好吧,就像我刚才提到的那样(Ja ...
- spring mvc的例子
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Python中通过open()操作文件时的文件中文名乱码问题
最近在用Python进行文件操作的时候,遇到创建中文文件名的乱码问题. Python默认是不支持中文的,一般我们在程序的开头加上#-*-coding:utf-8-*-来解决这个问题,但是在我用open ...
- delphi 安卓程序如何读取外部配置文件
1)编辑一个config.txt文件,填写配置系统. 2)有外部加载文件时,安卓发布需要另行指定文件发布目录位置 比如加载config.txt需要在 首先利用Project->Deploymen ...
- TFS:需要包管理许可证才能进一步操作You need a Package Management license to go further
问题: 为什么团队成员没有查看包管理服务的权限?如下图: 答案: TFS系统的访问级别设置,决定在默认配置中用户是否有包管理的访问权限.默认配置中,只有"VS Enterprise" ...
- DBCC--SHRINKDATABASE
--DBCC SHRINKDATABASE --收缩数据库 --USAGE: dbcc SHRINKDATABASE ( { 'database_name' | database_id | 0 } [ ...
- C#时间加减
DateTime dt =......//减数DateTime dt_n = DateTime.Now;//被减数 long x = dt .ToFileTime();//表示自协调世界时 (UTC) ...