Maven:一个优秀的项目构建工具
1.1 什么是Maven
Maven的含义:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
1.2 Maven的优势
自动构建
1.清理代码:相当于我们运行clean的效果
2.自动编译:可以为咱们自动完成编译(类似于执行javac生成class文件)
3.完成测试:实现测试功能,帮咱们完成
4.生成报告:可以较为方便的实现对项目的管理
5.打包:普通Java项目打jar包,web项目打成war包–实施工程师
6.项目部署:只需要一句命令mvn jetty(tomcat):run即可实现项目的部署
jar包依赖管理
导包确实是一个比较痛苦的过程。特别是我们导入一个功能jar包,而它又依赖于其它的jar包,靠死记硬背,即花时间又 没有太大的意义,而Maven完美的解决了这个问题,我们只需要导入功能包,它会为 我们自动把对应的依赖包导入。
契约编程
约定好项目的基本结构。咱们使用Maven,项目的结构就必需是Maven要求的结构,刚开始使用这种结构确实让人很别扭,但是,这种契约编程却让代码结构有统一的规范,让多人(多团队)开发变得更加的简单。
2.1Maven的安装与配置
2.2.1安装JDK-JavaSE
JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
注意事项:
安装的路径不要有中文,不要有空格
配置环境变量:要不全部配置到系统变量或者用户变量
1.配置JAVA_HOME:配置到JDK安装的根路径
2.配置PATH:不能把后面配置的内容清空
只要在Window系统path环境变量出现的exe程序,就可以直接点击使用
3.显示当前安装JDK版本:
使用 java -version 命令验证 Java 安装。
2.2.2安装Maven
从网上下载 Maven:http://maven.apache.org/download.html
安装的过程和jdk相似
1.解压Maven并且进行环境变量配置
2.配置Path
3.检查是否配置成功
mvn -v
mvn 没有参数
自动生成两个文件夹:C:\Users\Administrator.m2\repository 本地仓库目录
扩展小知识
如果Maven出现JVM内存不足的情况(现在的电脑内存一般没有这种问题了) --JVM内存 调优
设置MAVEN_OPTS环境变量
-Xms128m -Xmx512m
JVM内存过小的问题解决(现在电脑一般也没问题)
JAVA_OPTS
-Xms256m -Xmx1024m
2.2.3.配置本地仓库
1.把本地仓库配置在非系统盘
第一步:移动settings.xml文件
MAVEN_HOME/conf/settings.xml 全局的
~用户根路径C:\Users\Administrator/.m2/settings.xml 单个用户的,修改用户的配置文件
第二步:准备好本地仓库
第三步:配置文件设置路径到本地仓库
单个的settings.xml文件
增加F:\OpenSource\maven\repository-teacher\repository-teacher
2.3.Maven常用命令
1.打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化
2.cmd 中继续录入mvn clean命令,然后再次查看根目录变化
3.cmd 中录入 mvn clean compile命令, 查看根目录变化
4.****cmd 中录入 mvn clean test命令,查看根目录变化
5.****cmd 中录入 mvn clean package命令,查看根目录变化
6.****cmd 中录入 mvn source:jar命令,查看根目录变化,源码包
7.cmd 中录入 mvn clean site命令,查看根目录变化
8.****cmd 中录入 mvn install命令,查看本地仓库变化
9.****生成Eclipse的需要2个文件mvn eclipse:eclipse
10.maven打包不执行测试用例的命令
11.****mvn package -Dmaven.test.skip=true
2.4.Maven导包
2.4.1.Eclipse中导入一个Maven结构的项目(如下图)
2.4.2.认识pom.xml的基本配置(重点)
4.0.0
cn.itsource.maven
Hello
SNAPSHOT快照,不稳定,随时都在修改bug
RELEASE 释放,稳定版本
0.0.1-SNAPSHOT
hello
junit
junit
4.9
test
2.4.3.修改pom.xml的导包配置
1.在咱们加上导包配置之前的jar包
2.加入导包配置(环境)
4.0.0
…其它配置省略
…
org.springframework
spring-web
4.2.5.RELEASE
2.4.4.互连网搜索坐标(连网)
1.座标的组成
org.springframework
spring-orm
3.0.5.RELEASE
groupId 组id:定义当前Maven项目隶属项目,包名,一般是公司项目包名
artifactId 模块id:定义实际项目中的一个模块,模块名(工程名称)
version:定义当前项目的当前版本
SNAPSHOT快照版本,就是开发版本
RELEASE释放版本,正式版本,稳定 使用其他机构提供的jar文件,必须使用释放版本
packaging:定义该项目的打包方式(jar/war) 默认值jar
如果需要oracle的jar,只有自己按照maven坐标的路径,自己拷贝到本地仓库(因为oracle不开源)
咱们只需要加一个包,它就会把这个包以及对应的依赖包全部导入,这确实是太棒了,但是又有同学会觉得,即便是这样,引入这一个包的xml也还是挺麻烦的。
其实,对于这个引入,咱们也是可以直接在网上搜索:
网址:http://mvnrepository.com/
1.直接进行搜索
2.从搜索的结果中选择一个自己的需要的
3.选择一个相应的版本
把数据拷备过来即可
2.5.Maven的插件
其实Maven的本质是一个插件框架,它的核心并不执行任何具体的构建任务,所以这些任务都是交给插件还完成的,例如编译源代码是由maven- compiler-plugin完成的。
Maven 插件通常被用来:
1.创建 jar 文件
2.创建 war 文件
3.编译代码文件
4.代码单元测试
5.创建工程文档
6.创建工程报告
下面是插件的代码:
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itsource.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
//...依赖略
</dependencies>
pss
org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 2.6.仓库的认识 在 Maven 的术语中,仓库是一个位置(place),例如目录,可以存储所有的工程 jar 文件、library jar 文件、插件或任何其他的工程指定的文件。 Maven的仓库有两种:本地仓库与远程仓库 2.6.1.本地仓库 解释:就是自己电脑存放jar包的地方 默认路径:~/.m2/repository/ 注:每个用户只有一个本地仓库 2.6.2.远程仓库
中央仓库:Maven的默认的远程仓库(http://repo1.maven.org/maven2)
配置setting文件里面
central
Central
Central
http://repo1.maven.org/maven2/
true
true
私服:是一种特殊的远程仓库,它是架设在局域网内的仓库(怎么搭建私服 --了解)
如果公司里面有,只需要配置公司私服地址 找到对应的jar包
localRepository
myRepository
myRepository
http://192.168.1.1:8081/nexus/content/repositories/myRepository/
true
true
镜像:用来替代中央仓库,速度一般比中央仓库快(百度 csdn,oschina,阿里云)
配置:(掌握)
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central