maven详细解读(重量级来了)
工欲善其事必先利其器,只有先了解了Maven后,才能更好地使用maven编写项目。
Maven教程第一章 Maven简介1.1 Maven概述
Apache开发的管理工具
官网:http://maven.apache.org/
概念:Maven项目对象模型(POM),通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
目标:希望开发人员能在最短时间内理解开发的完整状态。
特点:简化构建过程、统一构建体系、提供高质量的项目信息、提供开发的最佳实践指南、实现透明的新特性的迁移、简化构建过程。
1.2 Maven的作用
1、管理依赖:管理Jar及其下载,版本
2、构建项目:完成项目代码的编译、测试、打包和部署
1.3 Maven的使用方式
1、独立使用Maven:使用Maven的各种命令,完成代码的编译、测试和打包
2、结合开发工具使用:一般在idea中使用maven,简单,快捷,不需要级命令
1.4 Maven的核心概念
1. POM: pom.xml,叫做项目对象模型、把一个项目当做一个模型使用,类似于控制层,完成编译、测试、打包、安装、部署等等。
2. 约定的目录结构:有规定的目录和文件位置
3. 坐标:唯一的字符串,表示资源
4. 依赖管理:管理项目可以使用的Jar文件
5. 仓库管理(了解):资源存放的位置
6. 生命周期(了解):maven工具构架项目的过程
7. 插件和目标(了解):执行maven构建时用的工具是插件
8. 继承
9. 聚合
1.5 安装Maven环境
Maven的使用,先难后易,使用maven命令很难,在idea中直接使用maven,代替命令。
Maven安装和配置
- 官网下载:http://maven.apache.org/
2.必须要下载到英文名字的文件夹中,否则文件不会生效,下面是一些核心文件的解释
bin:执行程序,主要是mvn.cmd
conf: maven的本身配置文件,主要是setting.xml
3.配置环境变量:在系统的环境变量中,指定一个M2_HOME名称,指定它的值maven工具的安装目录
再把M2_HOME加入到path中,在所有路径前加入%M2_HOME%\bin
4.安装成功的标志
打开cmd,输入mvn -v指令,若能执行成功,则代表maven安装成功了。
1.6 Maven的编译过程
命令行的编译方式:
输入cmd->进入命令行,进入想输入的Maven文件中,输入mvn compile,编译所有Java文件
为什么要下载? 因为Maven工具执行需要很多插件
下载了什么东西? 插件:完成某些功能
下载的东西放哪了? 默认仓库:C:\Users\Administrator\.m2\repository
执行mvn compile后,会在项目的根目录下生成target目录(结果目录),maven编译的java程序,最后的class文件都放在target目录中
也就是说,编译项目时,明明某个文件存在,可运行时系统却报错为不存在,原因就可能是该文件在项目中存在,但是在target文件夹中不存在。
修改仓库地址:在setting.xml中修改
第二章 Maven的核心概念2.1 Maven工程约定的目录结构任何项目其实都有约定,约定就是一个规则。
main:主程序的Java代码和配置文件
Java:程序包和包中的Java文件
resources: Java程序中要使用的配置文件
pom.xml: Maven的核心文件
2.2 pom.xml文件
pom.xml,叫做项目对象模型。控制全局。把一个项目当做一个模型使用,类似于控制层,完成编译、测试、打包、安装、部署等等。
2.3 仓库- 存放物品:存放Jar、Maven的插件等等
- 仓库分类本地仓库,可以在maven安装目录/conf/settings.xml中指定中央仓库:最权威的,所有的资源都放在这里中央仓库的镜像:分担压力的私服:公司局域网内部使用的,就是公司自己开发的
2.4 Maven的生命周期
概念:项目的构建过程:清理、编译、测试、报告、打包、安装、部署
2.5 Maven的常用命令
概述:Maven通过命令完成
mvn clean:清理
mvn compile:编译src/main/java目录中的程序,把Java编程成class文件,并放到target/classes目录中
mvn test-compile:编译src/main/test目录下的Java程序,拷贝到target/test-class目录中
mvn test:进行单元测试,使用Junit测试src/main/java目录下的程序是否符合要求
mvn package:打包。把程序中src/main/test下面的Java编译后的class和resources中的配置文件放入到一个压缩包中。
mvn install:把jar、war安装到本机仓库中
2.6 插件
概念:Maven提供的功能,用来执行清理、编译、测试、报告、打包的程序
2.7 坐标(gav)
由三个向量组成,唯一定位一个Maven项目,三者同时定义路径,groupId和version决定Jar包名称
groupId:组织名,通常是一个公司或组织名称倒序 项目名
artifactId:模块名:通常是工程名
version:版本号
2.8 依赖(dependency)
依赖的作用:用依赖把jar导入到项目中
第三章 Maven在IDEA中的应用3.1 在idea中设置maven
1. maven简介
idea中内置maven,但一般不用,因为用内置修改maven的设置不方便
因此使用自己安装的maven,需要覆盖默认配置,也就是指定maven的安装位置等信息
其中:Setting选项是用来设置本项目的Maven的
Other Setting是设置以后建立的项目的Maven的
目录如下:
进入Setting项,可以看到有三个项目管理工具
其中,框选的两个项目工具最常用,Gradle是最新开发的项目管理工具,功能更强但应用较少。
打开Maven,框选的三个分别是Maven工具的存放路径、配置文件的存放路径、本地仓库(target文件)的存放路径
2. maven-Runner选项的配置
1. 变得更快
接下来进入Runner选项,配置vm项,可以让maven创建的更快
原本的maven默认下载一个模板文件,有7M,下载很慢,为了不让他下载,就需要在vmOption中进行配置,禁用相关的下载。
2. 自动刷新功能
若想让Maven自动刷新,即一旦更新pom.xm文件,Maven项目就自动刷新,只需勾选红框内的选项即可
3. 对新创建的项目的Maven配置
操作与对本项目进行Maven配置一致
3.2 Maven创建Java项目
需要选择的Maven模板:
使用普通Java项目模板创建即可
3.3 Maven创建Web项目
需要选择的Maven模板:
第四章 依赖管理
4.1 依赖的范围
依赖范围的名称和说明见下表:
一般来说,只有单元测试的依赖范围是test
下面,给出了test的依赖示例
第五章 Maven常用设置
5.1 Maven的属性设置
<properties>设置maven的常用属性
5.2 全局变量
全局变量的定义格式:${变量名}
对于:自定义全局变量,一般用来自定义版本号。做法是:先使用全局变量定义,再使用${变量名}
5.3 指定资源插件
一般来说,如果不指定任何资源插件,src/main/java和 src/test/java两个目录中的所有*.java文件会被编译,并将结果分别存放到target/classes和targe/test-classes目录中
但是这两个目录中的其他文件都会被忽略掉,因此,如果我们需要使用其他文件,在运行时就会报错。 解决办法是指定资源插件,将以下内容放到<buid>标签中,将其他文件也进行编译
<build>
<!--把src/main/java目录中的.xml文件包含到输出结果中,输出到classes目录中-->
<resources>
<resource>
<directory>src/main/java</directory> <!--所在的目录-->
<includes> <!--包括目录下的.properties.xml文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!--表示不用过滤器,因为.property已经起到过滤的作用了-->
<filtering>false</filtering>
</resource>
</resources>
路漫漫其修远兮,学习这种事急不来,更多更全免费Java知识关注私信哦
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com