Maven主要解决的两个问题
第一个小问题:
开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢?
可以将B项目打成jar包,然后在A项目的Library下导入B的jar文件,这样,A项目就可以调用B项目中的某些类了。
第二个小问题:
我们开发一个项目,或者做一个小demo,比如用SSM框架,那么我们就必须将SSM框架所用的几十个依赖的jar包依次找出来并手动导入,超级繁琐。
综上所说,maven主要功能两个
第一个帮你导入你需要的jar包,maven咱们会配置一个本地仓库,你只需要在pom.xml中导入需要jar包的坐标就行了。
第二个可以把你写的项目做成jar包,给别人用。
Maven是什么呢?
Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具
我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。
Maven的安装,不多说了,网上一堆。
Maven的配置
配置好环境变量,更改好settings文件下的仓库地址,弄好本地仓库。
然后创建maven项目的时候,配置好maven的安装地址,settings的地址,本地仓库地址,就可以用了。
仓库种类包括:本地仓库、中心仓库、远程仓库(私服)
- 1)本地仓库:打开Maven-conf目录下的settings.xml,可以看到localRepository的注解:Default: ${user.home}/.m2/repository,即Maven本地仓库的默认位置是系统盘下的路径;一般我们会在项目中用override给重写。
- 2)中央仓库:启动Maven工程时,先通过jar包坐标在本地仓库寻找jar包,若本地没有,在联网的情况下会去中央仓库下载,未联网的情况下因找不到jar包会报错。中央仓库放置了几乎所有的开源jar包;
- 3)远程仓库:实际企业项目开发时,为了方便管理,且未联网的情况下也正常开发,会创建一个远程仓库,别名为私服。公司可以通过局域网从远程仓库获取jar包。远程仓库的jar包可以是本地上传的,也可以是从中央仓库下载的。
Maven的指令
清理:mvn clean --删除target目录,也就是将class文件等删除
编译:mvn compile --src/main/java目录java源码编译生成class (target目录下)
测试:mvn test --src/test/java 目录编译
打包:mvn package --生成压缩文件:java项目#jar包;web项目#war包,也是放在target目录下
安装:mvn install --将压缩文件(jar或者war)上传到本地仓库
部署|发布:mvn deploy --将压缩文件上传私服
上面的指令是maven的生命周期,编译,测试,打包,安装,发布。它给你直接集成了,点就完事了。