Maven的使用
来源:互联网 发布:linux内核移植 编辑:程序博客网 时间:2024/06/06 02:23
Maven工具的命令主要是mvn ,该命令的基本格式是:
mvn <plugin-prefix>:<goal> -D<属性名>=<属性值>...其中plugin-prefix是一个有效的插件前缀,goal就是该插件所包含的指定目标,-D用于为该目标指定属性,每次运行mvn 可通过多个-D选项指定多个属性。
还有种指定运行插件的方式:mvn <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>:<goal>
plugin-group-id 和plugin-artifact-id和 plugin-version 被称为maven坐标,可用于唯一地标识某个项目。
maven核心其实什么也没有,maven只是一个空的容器,只会解析一些xml,管理声明周期和插件。而maven的强大在于maven的插件,所以它的功能可以无限扩大。
创建项目使用 archetype 插件,使用mvn archetype:generate 命令 即可创建Maven项目,
使用此命令后会生成一个文件夹,该项目的根路径下包含一个 pom.xml ,此文件被称为项目对象模型描述文件,Maven使用一种被称为项目对象模型的方式来管理项目。
POM(Poject Object Model)用于描述如下问题:项目类型,项目名称等,pom.xml是一种项目对象模型的描述文件。
pom.xml中的<groupId.../>,<artifactId.../>,<packaging.../>,<version.../>定义了该项目的唯一标识。
该文件还包括一个<dependencies.../>元素,该元素定义了一个单独的测试范围的依赖(通常是一些框架或jar包)。
在pom.xml文件所在路径输入如下指令:
mvn complie 表示运行complie插件的默认目标,这会编译该项目。
mvn exec:java -Dexec.mainClass="org.fkjava.mavenqs.App" 表示运行exec插件,即运行该项目。
一个pom.xml样例:
<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>org.fkjava</groupId> <artifactId>mavenQs</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>mavenQs</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>Maven的核心概念
Maven采用约定优于配置的原则,maven主要由一下几条原则:
源代码应位于/src/main/java路径下,资源文件应位于/src/main/resource路径下,测试代码应该位于 /src/test 路径下,编译生成的class应位于/target/classes 路径下,项目还会产生一个jar应位于/target路径下。
maven预定义了一个固定的生命周期,以及一组用于构件和装配软件的通用插件,若是开发者遵循这些约定,只需要将源代码放到正确的目录下,maven可以帮你处理剩余的事。
Maven的声明周期
进入pom.xml文件所在的路径,执行如下命令 mvn install 命令行显示maven不仅运行了install,而且运行了大量的插件,就是maven生命周期导致的。
生命周期就是指maven构建项目的过程中,包含很多个阶段,常见的是maven默认的声明周期。
maven的生命周期由多个阶段构成,各个阶段按照次序执行,开始阶段是为了保证项目的基本完整性,结束阶段是为了将项目发布到远程仓库。
实际上mvn 命令除了可以使用<plugin-prefix>:<goal>运行指定插件的目标外,还可以使用如下的命令格式:mvn <phase1> <phase2>...
上面命令告诉maven执行生命周期中的一个或多个阶段。
maven包含三个基本的生命周期
clean default site
clean 包含如下三个核心阶段:
1)pre-clean 在构建之前执行预清理
2)clean 执行清理
3)post-clean 最后清理
默认的生命周期包含了项目构件的核心成分,默认的生命周期包含以下核心阶段:
1)compile 编译项目
2)test 单元测试
3)package 项目打包
4)install 安装到本地仓库
5)deploy 部署到远程仓库
这五个阶段依次执行,当程序员使用mvn执行install命令时,先进行install之前的阶段。
插件和目标
Maven可以整合进Ant,使用maven来运行ant的生成文件。
出了可以使用maven官方的,或第三方提供的各种插件之外,开发者也可以开发自定义插件,通过自定义插件来完成任意任务。
当使用mvn运行maven生命周期的指定阶段时,各阶段的工作也是由插件实现的。插件也可以绑定到生命周期的各个阶段。每个阶段可能绑定了零个或多个目标。
maven的坐标
POM需要为项目提供一个唯一的标识符,这个标识符就是项目的坐标。
maven坐标由以下4个元素构成:
groupId : 该项目的开发者的域名。
artifactId : 指定项目名。
packaging:指定项目打包的类型。
version : 指定项目的版本。
比如上面的pom.xml文件中, <project.../>根元素下的节点:
<groupId>org.fkjava</groupId> <artifactId>mavenQs</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version>
maven坐标可以精确定位一个项目。
例如mavenQs项目中还有如下的配置片段:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>上面的配置文件定义了一个依赖关系,表示此项目依赖于junit 3.8.1,其中的groupId artifactId version 便是junit的坐标。
POM文件的元素,pom.xml还可能包含下列元素
<properties.../> :该元素定义全局属性
<dependencies.../>:该元素用于定义依赖关系
<scm.../>:指定该项目源代码的管理工具,如svn。
<reposiories.../>:该元素用于定义远程资源库的位置。
- 【Maven】Maven的简单使用
- maven的初级使用
- maven的使用
- maven 的使用
- maven使用的总结
- maven的使用
- Maven的使用
- maven的使用
- maven的使用
- Maven的使用
- maven的使用
- Maven的本地使用
- maven的简单使用
- Maven的使用
- 使用maven的好处
- maven的使用
- Maven 的使用
- Maven的使用
- Ubuntu12.04换源
- sdk、jdk、jre的区别
- main函数中定义函数
- B1040. 有几个PAT(25)。。。解题思路值得学习
- Xshell5连接问拒绝
- Maven的使用
- Ardunio菜鸟教程(二)
- Linux设备模型分析之device_driver(基于3.10.1内核)
- 入职新公司,重新开头一个项目 准备
- C:forEach标签模拟break
- Spring源码系列之——源码编译成eclipse项目
- 服务器篇03-配置本地yum+Vsftpd
- qt添加Q_OBJECT报错
- JAVA中关键字Static以及java中类加载顺序