maven笔记
作用
1.maven可以管理jar文件
2.自动下载jar和他的文档和源码
3.管理jar直接的依赖 a.jar需要b.jar 那么maven会自动帮你下载b.jar
4.管理你需要的jar版本
5.帮你编译程序 把java编译为class文件
6.帮你测试你的代码是否正确
7.帮你打包文件 形成jar文件 或者war文件
8.帮你部署项目
项目搭建
构建是面向过程的 就是一些步骤
maven支持的构建包括:
1.清理:把之前项目编译的东西删除掉 为新的编译代码做准备
2.编译:把程序源代码编译为执行代码,java-class文件批量编译 这是maven可以做到的 javac不一样 javac一次执行编译一个文件
3.测试:maven可以执行测试多个测试代码 同时测试很多个功能
4.报告:生成测试结构的文件 测试是否通过
5.打包:把你的项目中的所有class文件 配置文件等资源放到一个压缩文件中 这个压缩文件就是项目的结果文件 通常是java程序 压缩文件是jar的扩展名 对于web应用 压缩文件时war包
6.安装:把5中生成的文件 安装到本地计算机中
7.部署:把程序安装好可以执行 一般不用这个功能
如果你创建了一个maven项目 那么右侧就会出现一个栏目 与上的1到7对应
核心概念
1.pom:文件 名字就叫做pom.xml pom翻译过来就是项目对象模型
maven吧一个项目当做一个项目使用 控制maven构建项目的过程 管理jar依赖
2.约定的目录结构:maven项目的目录和文件的位置都是规定的
3.坐标:是一个唯一的字符换 用来表示资源
4.依赖管理:管理你的项目可以使用jar文件
5.仓库管理(了解):你的资源存放文件
6.生命周期(了解):maven工具构建项目的构成 就是生命周期
7.插件和目标:(了解) 执行maven构建时候用的工具就是插件
8.继承
9.聚合
约定目录的结构
当你创建一个全新的maven项目时候 里面的目录结构
项目的目录->里面有src和pom.xml二者平级
src 包含 main and test
main - > java 主程序的java文件
resources:配置文件
test — > java:测试程序艾玛
resources:测试使用的配置文件
仓库
仓库说是什么
存放maven使用的jar和我们项目中使用的jar
仓库分为:本地仓库 远程仓库
本地仓库:就是你的个人计算机上文件夹存放jar的地方
远程仓库:放在互联网上 使用网络才能进行操作
分为:中央仓库 镜像仓库 私服
中央仓库:最权威的 所有开发人员都共享使用的一个集中的仓库
镜像仓库:就是中央仓库在各个地区的备份
私服:公司内部使用的仓库 不对外 在局域网中使用
pom的基本结构
1.坐标 唯一 在互联网中唯一标识项目的
<groupId>公司域名 的 倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号</version>
2.packaging 打包后压缩文件的扩展名 默认是jar 或者war
3.依赖
dependencies和dependency 相当于是java代码中的import
你的项目中要使用的各种资源的说明 比如:我的项目要使用mysql驱动
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
依赖的作用范围
maven构建项目清理 编译 测试 打包 安装 部署
test 测试阶段起作用
provided提供者 当你项目使用使用时候好使 当你打包以后不会把他也插进去
compile 哪里都用
常用操作
1.属性设置 加入依赖
2.全局变量
1.自定义属性
1.在属性里自定义标签中声明变量
2.在pom文件中的其它位置 使用${标签名} 使用变量的值
自定义的全局变量名一般用来一定版本号 当你的项目中要是用多个相同的版本号 可以先定义全局变量 在动态添加到依赖中
<properties>
<kotlin.version>1.0.0</kotlin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test</artifactId>
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
资源插件
build 一般情况下mvn compile 作用是把java文件夹里面的java文件编译成class 但是java文件夹对其他的文件不会编译 比如:.xml和.properties文件 编译不会放到target中
所以我们要设置 当你扫描到其他文件 也要进行操作
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
/*.properties
/*.xml
false