Maven介绍
Maven介绍
简介
Maven是由Apache公司用纯Java开发的开源项目,用来管理我们的开发项目。
Maven是一个项目管理工具,可以对Java项目构建,依赖管理。具体可以看百度百科.
一般项目开发都会使用项目管理工具来帮助开发人员进行项目管理,而Maven已然成为大多数开发人员的选择。
安装
- 进入官网下载bin.zip文件
- 解压到C盘的User目录下(Dogs,我的解压目录)
- 配置环境变量:
- 新建系统变量 MAVEN_HOME:
- 编辑系统变量 Path:
- 检查是否安装成功:打开CMD输入-->
mvn -v
即可检查Maven版本相关信息。
修改settings.xml配置文件
打开Maven安装目录的conf文件夹下的settlings.xml文件
修改镜像地址
maven默认依赖下载地址是外网,下载速度慢,将其改成阿里镜像提高jar包下载
找到mirrors标签,将默认的mirror标签内容修改成如下
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
修改本地仓库的存放位置
如果不想每次使用Maven添加依赖都从网上下载,就需要创建本地的Maven依赖仓库,只需要在Maven管理的项目中指定依赖导入的仓库即可直接添加不需要下载(只要由对应依赖的版本号)。
直接在根标签下添加如下内容即可:
<localRepository>C:\Users\CNDA\maven\repository</localRepository>
settings.xml是给Maven看的,如果你想根据需求使用不同的settings.xml可以创建多个settings.xml但是名字必须是settings.xml,这意味着你必须在Maven管理中指定要使用的settings.xml具体路径。一般来说一个够用了。
配合idea使用
现阶段我们一般使用idea进行开发,那么我们就需要在idea中使用Maven管理我们的项目。
-
在idea中创建maven项目
直接选中Maven点击next即可
创建好了之后,项目结构应该如图所示:
-
Maven项目结构目录介绍
- main目录下有两个文件夹
- java:我们项目的源代码,也就是我们普通Java项目src下的目录结构
- resources:项目中需要的配置资源文件在此目录下
- test:项目测试使用的结构目录,此文件下的所有文件都不会被编译到最终结果中(大致结构与main相同)
- target:目录存放编译打包的结果(项目的最终编译结果,跟src同级目录)
- pom.xml:是maven项目的配置文件,根据pom.xml中的规定来管理项目的依赖和构建。
- main目录下有两个文件夹
管理SSM项目
SSM开发的项目最后部署在tomcat中,我们使用idea创建一个被Maven管理的web项目。
记得勾选Create from archetype,然后选中上图所示的maven-archetype-webapp
,然后Next。
Maven home path :选择你的maven根目录
User settings file: 选择你的settings.xml文件路径
Local repository: 选择你的依赖仓库
点击Finish
完整SSM的Maven项目如下:
如果创建项目时main下没有文件夹,也没有test文件夹,则需要我们手动创建并配置。
直接如上图的结构创建目录即可,然后标记目录,右键需要标记的目录找到mark directory as
,java目录就选Sources Root,main下的resources就选Resources Root,test下的java和resources就选前面带有Test就行。到此用Maven管理SSM项目就完成了。
注意:如果pom.xml中pluginManagement
标签下的maven插件依赖报错,直接将其删除即可,我也不知道具体原因为什么版本报错,反正我即使更改版本不报错也用不了插件。所以删除插件并不影响我们程序的编写和正常使用Maven的功能。
SSM项目中解决Mapper.xml和resources中文件不能被maven编译打包问题
在SSM项目中,我们不只有java文件,还有在Mapper层中的Mapper.xml文件和resources文件下的相关配置文件,但是maven默认只会将我们所有java文件和webapp下的文件进行打包,并不会将mapper.xml文件和配置文件进行打包,这样就导致我们部署在tomcat中的war包中没有对应的文件导致报错,所以我们需要告诉Maven,让maven将我们的文件进行打包。
pom.xml配置如下:
<build>
<!--
有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,
就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。
-->
<!-- 资源目录 -->
<resources>
<resource>
<!-- 设定主资源目录 -->
<directory>src/main/java</directory>
<!-- 需要读取的文件 -->
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<!-- 讲resources下配置文件加载到war包的classes中 -->
<resource>
<!-- 设定主资源目录 -->
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
编译打包后,我们的mapper.xml文件和resources下的文件就会被maven打到war包下,配置文件会移到WEB-INF下的classes中。
打包
除了web项目是打成war包发布在服务器上,其他都是打成jar包,打包的方式有多种,其中就说一个最基本的打包方式,打jar包并不是说运行程序就完成了打包,那target中有我们编译的class文件,并不会生成jar包,我们需要点击idea右侧栏的maven中的package
然后Run中会出现打包的相关信息
可以看到打包的类型是jar类型,而jar包的路径在Building jar
中给出。
小结
我们以后会频繁的使用到maven来管理我们的中大型项目,特别是团队开发,可能还会使用到Git工具,使用maven管理项目非常的方便,不只体现在依赖导入,构建,打包等都会方便。