开始深入了解Maven,学习笔记
一、Maven工程预定目录结构
project(项目)
| —- src(源代码)
| —- —- main(主程序)
| —- —- —- java(主程序java源码)
| —- —- —- resources(java程序中要使用的配置文件)
| —- —- test(测试程序)
| —- —- —- java
| —- —- —- resources
| —- pom.xml (Maven核心文件)
二、Maven使用
- Maven第一次使用会下载文件
- 下载的是Maven工具执行需要的插件
- 下载位置为:C:\Users\”用户名”.m2\repository(本地仓库)
- 修改本地仓库位置
- (1)在修改文件之前,先将文件进行备份,方便复原
- (2)找到Maven安装目录下的
conf\settings.xml
- (3)修改
localRepository
来指定你的目录,非中文目录
三、仓库
- 存放maven使用的插件,项目使用的jar(第三方工具包)
- 分类:
- 本地仓库:个人计算机上的文件夹,存放各种jar
- 远程仓库:在互联网上,使用网络才能使用的仓库
- 中央仓库:最权威的,所有开发人员都共享的一个集中仓库
- 中央仓库镜像:中央仓库的备份,在各大洲,重要的城市都有镜像
- 私服:在公司内部,在局域网中使用,不对外使用
四、POM
- Project Object Model ,项目对象模型,特指pom.xml文件
4.1 pom文件标签
标签 |
说明 |
modelVersion |
Maven版本,通常4.0.0 |
groupId |
组织id,一般是公司域名的倒写 |
artifactId |
项目名称,也是模块名称 |
version |
项目版本号;如果带有-SNAPSHOT,表示不稳定版本 |
packaging |
项目打包的类型:jar、war…;默认jar |
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId> <artifactId>Maven入门</artifactId> <version>1.0-SNAPSHOT</version> </project>
|
- 其中groupId、artifactId、version组成坐标;用来唯一表示一个jar文件
标签 |
说明 |
dependencies |
管理jar包 |
dependency |
管理具体的jar包,里面填写坐标 |
properties |
设置配置属性 |
build |
与构建相关的配置 |
parent |
继承父工程pom的设置 |
modules |
子模块 |
1 2 3 4 5 6 7 8 9 10
| 设置依赖(导入jar包) <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies>
|
- 如果要导入相关jar包,可以通过maven配置依赖的形式进行导入
- maven中央仓库搜索网:https://mvnrepository.com/
- 可以在此查看相关jar包Maven的依赖编写,或直接下载jar包
- 搜索条件为:groupId,或artifactId
4.2 依赖管理
- 在上面依赖举例中,出现了
<scope>
标签,此标签标示依赖作用的范围
- 有三个参数:compile、test、provided,没有此标签默认为compile
- compile:在生命周期编译、测试、打包、部署都起作用
- test:只在测试阶段起作用
- provided:在编译、测试阶段起作用
|
compile |
test |
provided |
编译 |
是 |
否 |
是 |
测试 |
是 |
是 |
是 |
打包 |
是 |
否 |
否 |
部署 |
是 |
否 |
否 |
五、Maven生命周期及代码
- mvn clean:清理
- mvn compile:编译主程序
- mvn test-compile:编译测试程序
- mvn test:测试(会生成一个surefire-reports,保存测试结果)
- mvn package:打包主程序(封装为jar包)
- mvn install:安装主程序(将jar包复制到本地仓库)
- mvn deploy:部署主程序
- 注意 : 以上命令都在pom.xml所在目录执行
六、插件
Maven执行上述的命令,都是使用到插件来进行
插件可以通过在pom.xml,进行信息配置修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <build> <pluginManagement> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin>
<plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin>
<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin>
<plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin>
<plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin>
<plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin>
<plugin> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </pluginManagement> </build>
|