Maven简介
来源:互联网 发布:七天网络组织代码 编辑:程序博客网 时间:2024/05/12 04:54
Maven
Maven是一个项目管理和构建自动化工具,它采用一种“约定优于配置(Convention Over Configuration)”的策略来管理项目。Maven可以把源代码构建成可发布的项目(编译,打包,测试,发布)。
Maven的安装过程参考:http://blog.csdn.net/kenhins/article/details/13298015
安装好后,我们首先看下mvn的命令格式: mvn <plugin-prefix>:<goal> -D<属性名>=<属性值> ...
1. 创建项目需要的插件archetype
比如我们用mvn archetype:generate -DinteractiveMode=false -DgroupId=com.blue.sky -DartifactId=Hello -Dpackage=dream
来创建项目的大体结构
2. POM(Project Object Model)
Maven使用项目对象模型的方式来管理项目,在pom.xml文件中包含了关于构建项目的各种配置细节信息,比如groupId
,artifactId
,packaging
,version
定义项目的唯一标识,这个唯一标识被称为坐标,每一个Jar包都必须明确定义自己的坐标
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.blue.sky</groupId> <artifactId>Hello</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Hello</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>
3. Convention
Maven的主要约定如下:
还有编译好的classes会放在${basedir}/target/classes
目录中, 生成的Jar包会放在${basedir}/target
目录下
4. Maven的生命周期
Maven生命周期中的元素被称为phase阶段,生命周期由多个阶段组成,Maven生命周期中的各阶段总是按顺序依次执行。
Maven包含三个基本的生命周期
- clean生命周期
clean生命周期包含如下三个核心阶段pre-cleancleanpost-clean
- default生命周期
默认生命周期的核心阶段compile test package 项目打包install 安装到本地仓库deploy 部署到远程仓库
- site生命周期
site包括如下核心阶段pre-sitesitepost-sitesite-deploy
4. 插件和目标
每个插件可以包括多个可执行的目标,当mvn运行Maven生命周期的指定阶段时,各阶段所完成的工作其实都是由插件实现的。插件目标可以绑定到生命周期的各阶段上,每个阶段可能绑定零个或多个目标。
5. 依赖管理
Maven依赖管理具有传递性,如果配置文件设置了项目依赖于a.jar,而a.jar又依赖于b.jar,那么项目无须显示声明依赖于b.jar,Maven会自动管理这种依赖的传递。
dependency元素可以接受如下子元素1. groupId 2. artifactId3. version4. type 默认值是jar5. classifier JDK的版本6. exclusions7. scope 依赖库起作用的范围 compile 默认的范围,编译,测试,打包时 provided 容器会在runtime时提供 runtime 编译时不需要,测试和运行时需要 test 只用于测试阶段
- Maven简介
- Maven简介
- Maven简介
- Maven简介
- Maven简介
- Maven简介
- maven简介
- Maven简介
- Maven简介
- maven 简介
- maven简介
- maven简介
- Maven简介
- maven 简介
- maven简介
- Maven简介
- maven简介
- Maven简介
- HDU 5776 sum(数学)
- MongoDB—主从复制
- 200. Number of Islands
- 入坑--ACM
- 【VS开发】文件夹和文件选择EditBrowe控件使用
- Maven简介
- MongoDB—分片技术
- MyBatis分页 mybatis-paginator
- 数据类型
- I/O复用之select
- uboot mkimage使用详解
- Linux的inode的理解
- Enum类的用法
- Mybatis使用中遇到的问题-selectOne与返回值类型