Maven
转自:Apache Maven
链接:https://maven.apache.org/index.html
Maven 生命周期
1、clean :清理上一次构建生成的所有文件;
2、validate
3、compile :编译项目的源代码;
4、test :运行测试代码;
5、package :打包成jar或者war或者其他格式的分发包;
6、verify
7、install :将打好的包安装到本地仓库,供其他项目使用;
8、site :生成项目的站点文档;
9、deploy :将打好的包安装到远程仓库,供其他项目使用;
Maven 目录分析
1:Maven 目录分析
bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
Settings.xml 中默认的用户库: ${user.home}/.m2/repository[通过maven下载的jar包都会存储到指定的个人仓库中]
Maven默认仓库下载地址在: maven的lib目录下maven-model-builder-3.0.4.jar的pom.xml中
IDEA 自带 Maven 配置
标签: Java
环境变量
在环境变量的系统变量中添加
MAVEN_HOME:F:\IntelliJ IDEA 2019.2.3\plugins\maven\lib\maven3(你的maven所在位置)
MAVEN_OPTS:-Xms128m -Xmx1024m
在环境变量的用户变量中的Path中添加:%MAVEN_HOME%\bin
Maven 创建项目目录结构
my-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java
2:创建目录结构:
Hello
--src
-----main
----------java --用来存放Java文件
----------resources --用来存放资源文件
----------webapp/WEB-INF --web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
-----test
---------java --用来存放测试的Java文件
---------resources
--target --项目输出位置,编译完毕后自动生成
-----classes --编译输出目录
-----test-classes --测试编译输出目录
--pom.xml -- 项目对象模型的描述 ,它是maven配置的核心
Maven 核心概念
5:Maven核心概念:
5.1:Maven插件
Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的每个插件都能实现多个功能,每个功能就是一个插件目标
Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务, Maven的插件在: .m2\org\apache\maven\plugins
5.2:Maven坐标
类似在平面几何中坐标(x,y)可以标识平面中唯一的一点, Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范
拥有了统一规范,就可以把查找工作交给机器
groupId:定义当前Maven项目隶属项目 (实际对应JAVA的包的结构, 是main目录里java的目录结构)
artifactId:定义实际项目中的一个模块(项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称)
version:定义当前项目的当前版本
5.3:Maven仓库
何为Maven仓库:用来统一存储所有Maven共享构建的位置就是仓库
Maven配置jar包的路径为:groupId/artifactId/version/artifactId-version
本地仓库(~/.m2/repository/):每个用户只有一个本地仓库
中央仓库(Maven默认的远程仓库):Maven默认的远程仓库下载地址为:http://repo1.maven.org/maven2
私服:是一种特殊的远程仓库, 它是架设在局域网内的仓库, 主要是为了团队协作开发
镜像:用来替代中央仓库, 速度一般比中央仓库快
5.4:软件构建生命周期,maven软件构建的生命周期
清除--> 编译-->测试-->报告-->打包(jar\war)-->安装-->部署。
maven生命周期命令插件(命令:mvn clean):clean--compile--test--package--install-deploy。
maven坐标:maven通过坐标的概念来唯一标识jar包或者war包
maven 仓库类型 我们在 nexus 私服或其他 maven 库看仓库类型有hosted、proxy、group
项目 | 具体说明 |
---|---|
hosted | 本地存储。像官方仓库一样提供本地私库功能 |
proxy | 提供代理其它仓库的类型 |
group | 组类型,能够组合多个仓库为一个地址提供服务 |