Maven-Apache
项目构建工具,用来管理项目依赖
Maven构建的项目非常小
jar包在仓库,而不在项目下面,Maven通过坐标去查找jar包(本地或中央仓库)。
坐标:struts2-core-2.3.24.jar
Apache(公司名称)+Struts2(项目名称)+2.3.24(版本信息)
Maven两大核心
- 依赖管理:对jar包管理
- 项目构建:项目在编码完成后,编译,打包,测试,部署--Maven通过命令来实现
Maven安装
Maven安装前提:Maven程序由java开发,依赖jdk
java环境变量配置
maven环境变量配置
MAVEN_HOME bin的上一级 PATH ;%MAVEN_HOME%\bin; bin目录 cmd-> java -version mvn -v
Maven本地仓库配置
配置本地仓库:
\apache-maven-3.5.0\conf\settings.xml
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repositoryrepository <localRepository>/path/to/local/repo</localRepository> -->
标准目录结构
Maven常用命令
java -clean,删除之前编译好的.class文件,重新编译一次
mvn clean: 工作插件(可以在本地maven仓库找到对应的jar包):maven-clean-plugin-清理项目下的target目录
mvn compile: 工作插件:maven-compiler-plugin-编译,将项目中的.java文件编译成.class文件
mvn test:单元测试,将项目根目录下面src/test/java目录下的单元测试类中的方法都会执行,类名要求:XxxxTest.java
mvn package:将项目打包到target目录下
web Project ----war包
java Project ---java包
mvn install :安装(打包):将项目打包的文件放到本地仓库。解决本地多个项目共用一个jar包,该jar包发生更改后其他项目不需要改动,因为使用的是该jar包在maven本地仓库的坐标
后面的动作会包含前面的动作
Maven项目的生命周期
在Maven中存在“三套”生命周期,每一套生命周期互相独立,互不影响。但是在同一套生命周期内,执行后面的命令,前面的命令会自动执行。
CleanLifeCycle:清理生命周期
clean
defaultLifeCycle:默认生命周期
compile,test,package,install,deploy
siteLiftCycle:站点生命周期
site
坐标信息
GroupId:公司域名倒序
ArtifactId:项目名称
Version:版本,SNAPSHOP:测试版本,RELEASES:发布版本
Packaging:打包方式,jar:JAVA工程,war:web工程,pom:父工程
Maven依赖范围
- compile:编译依赖范围(默认),对其三种都有效
- test:测试依赖范围,只对测试classpath有效
- runtime:运行依赖范围,只对测试和运行有效,编译主代码无效,例如JDBC
- provided:已提供依赖范围,只对编译和测试有效,运行时无效,例如selvet-api
- system:系统依赖范围.谨慎使用.例如本地的,maven仓库之外的类库文件
- import(maven2.0.9以上):导入依赖范围,不会对其他三种有影响
pom.xml
- 本项目的坐标信息
- 本项目jdk编译版本信息
- 本项目需要的插件/依赖信息
tips
子pom项目继承父pom项目,父项目必须在<dependencies> </dependencies>
外层再包裹一层<dependencyManagement> </dependencyManagement>',子项目才能继承到父项目的依赖的版本号,子项目才可以免写
<version></version>`