Maven 翻译为"专家,内行".Maven是Apache下的纯Java开发的开源项目,是一个项目管理工具,使用Maven对项目进行构建,依赖管理.
项目构建是一个从编写源代码到编译,测试,运行,打包,部署,运行的过程
1)在IDEA中创建一个java web工程
2)在工程中编写源代码及配置文件
3)对源代码进行编译,java文件编译成class文件
4)执行Junit单元测试
5)将工程打成war包部署至tomcat运行
清理,编译,测试,报告,打包,部署
一个项目中要使用第三方jar包才可以运行,那么这个项目依赖了这些第三方jar包
依赖管理:对项目依赖的包进行规范化管理
手动将jar包添加到项目中 缺点:可能造成版本冲突,导致工程过大,有些jar包不易找到,下载麻烦
只需要在pom.xml中添加jar包的坐标,自动从Maven 仓库中下载jar包,运行
优点:
(1)一步构建
maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。
(2)、依赖管理
maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。
(3)maven的跨平台,可在window、linux上使用。
(4)maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。
(1)下载
安装解压即可
(2)解压后的目录
(3)配置环境变量
在环境变量中 新建变量名MAVEN_HOME 值为Maven的安装路径
然后在PATH中引用你的MAVAEN_HOME
(4)
查看是否配置成功可在黑窗口中输入 mvn –v 出现如下图所示说明配置成功
如果有时出现不是本地命令,也不是本地命令,可以用管理员身份打开黑窗口
远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。
远程仓库可以在互联网内也可以在局域网内。
中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它 是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。
在任意盘符下新建一个目录作为仓库
然后在Maven的安装目录下找到conf目录下的settings.xml配置文件,
打开此文件配置本地仓库的路径
本地仓库目录建好后 打开 settings.xml文件进行配置本地仓库
10.maven常用命令
Maven常用命令介绍
注意:运行maven命令的时候,首先需要定位到maven项目的目录,也就是项目的pom.xml文件所在的目录。否则,必以通过参数来指定项目的目录。
Maven命令列表 |
|
mvn –version |
显示版本信息 |
mvn clean |
清理项目生产的临时文件,一般是模块下的target目录 |
mvn compile |
编译源代码,一般编译模块下的src/main/java目录 |
mvn package |
项目打包工具,会在模块下的target目录生成jar或war等文件 |
mvn test |
测试命令,或执行src/test/java/下junit的测试用例. |
mvn install |
将打包的jar/war文件复制到你的本地仓库中,供其他模块使用 |
mvn deploy |
将打包的文件发布到远程参考,提供其他人员进行下载依赖 |
mvn site |
生成项目相关信息的网站 |
mvn eclipse:eclipse |
将项目转化为Eclipse项目 |
mvn dependency:tree |
打印出项目的整个依赖树 |
mvn archetype:generate |
创建Maven的普通java项目 |
mvn tomcat:run |
在tomcat容器中运行web应用 需要插件支持 只有tomcat1.7的插件,没有1.8的 所以tomcat8.0用不了此命令 |
mvn jetty:run |
调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用 |
compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。
cmd进入命令状态,执行mvn compile,如下图提示成功:
查看 target目录,class文件已生成,编译完成。
test是maven工程的测试命令,会执行src/test/java下的单元测试类。
cmd执行mvn test执行src/test/java下单元测试类,下图为测试结果,运行1个测试用例,全部成功。
clean是maven工程的清理命令,执行 clean会删除target目录的内容。
package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。
install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。
从运行结果中,可以看出:
当后面的命令执行时,前面的操作过程也都会自动执行,
maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:
Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle 生成项目报告,站点,发布站点。
使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下:
src/main/java —— 存放项目的.java文件
src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
src/test/java —— 存放所有单元测试.java文件,如JUnit测试类
src/test/resources —— 测试资源文件
target —— 项目输出位置,编译后的class文件会输出到此目录
pom.xml——maven项目核心配置文件
一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。
通过maven的依赖管理对项目所依赖的jar 包进行统一管理。
比如:项目依赖junit4.9,通过在pom.xml中定义junit4.9的依赖即使用junit4.9,如下所示是junit4.9的依赖定义:
每个maven工程都需要定义本工程的坐标,坐标是maven对jar包的身份定义,比如:入门程序的坐标定义如下:
jar:执行package会打成jar包
war:执行package会打成war包
pom :用于maven工程的继承,通常父工程设置为pom
(1)在idea中配置maven
(2)创建项目
第一次创建要下载一些插件,需要联网,比较耗费时间
Maven项目创建好后,我们看一下目录结构,发现,有的目录IDEA并没有帮我们自动创建
需要我们手动创建,注意手动创建要符合Maven规定的目录结构
11.idea的项目管理
在pom文件中配置所需要的jar包
接下来我们看如何去一些网站搜索我们所需要的jar包
我们可以用下面这网站
http://mvnrepository.com/
复制好jar包坐标粘贴到你工程的pom.xml文件中即可
在你的pom.xml文件中 按alt+insert 快捷键 弹出一个框
注意如果你提示出来的jar包不全可以更新一下本地仓库,因为有时你刚从远程仓库下载到
本地仓库的jar包,没有提示出来,你可以更新一下本地仓库 ,如下图
12.通过Tomcat发布项目