1. 什么是POM
POM(Project Object Model)项目对象模型,它是Maven的核心组件。它是Maven中的基本工作单元。它是一个xml文件,以pom.xml驻留在项目的根目录中。POM不仅包含有关项目的信息及Maven用于构建项目的各种配置的详细信息,还包含目标和插件。
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| <parent> <groupId>com.bjpowernode.xiaomi</groupId> <artifactId>xiaomi-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
<groupId>com.bjpowernode</groupId> <artifactId>springmvc_006_ssm</artifactId> <version>1.0.0</version>
<packaging>war</packaging>
<properties> <mysql.version>5.1.32</mysql.version> </properties>
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> </dependencies>
<build> <modules> <module>xiaomi-manager-pojo</module> <module>xiaomi-manager-mapper</module> <module>xiaomi-manager-service</module> <module>xiaomi-manager-web</module> </modules> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>17</source> <target>17</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> </resources> </build>
|
2. 什么是约定的目录结构
会有预先约定好的目录结构,必须要遵循的规范,所有的Maven项目都依照这个规范。主要的目的是将项目的源码文件,测试代码,资源文件完全分开,便于项目管理和扩展。
3. 什么是坐标GAV
也称为gav定位。使用三个标签来唯一定位jar资源。项目的唯一的名称,创建项目时定义gav名称,引用项目时使用gav名称。相当于项目的身份证号。
表现在仓库,gav是一级一级的目录。
- groupId: 组织名称,一般是公司域名的倒写 com.north
- artifactId: 项目名称 springmvc_006_ssm
- version: 版本编号 1.0-SNAPSHOT(开发时的临时版本号) 5.2.5.RELEASE(发布版本)
1 2 3 4 5 6 7 8
| <groupId>com.north</groupId> <artifactId>springmvc_006_ssm</artifactId> <version>1.0.0</version> <dependency> <groupId>com.north</groupId> <artifactId>springmvc_006_ssm</artifactId> <version>1.0.0</version> </dependency>
|
4. 什么是仓库
4.1. 本地仓库
本地仓库,存在于当前电脑上,默认存放在 .m2\repository中,为本机上所有的Maven工程服务。你也可以通过Maven的配置文件Maven_home/conf/settings.xml中修改本地仓库所在的目录 。 是用户的主目录,windows系统中是 c:/user/登录系统的用户名
秘密: gav就是仓库中一级一级的目录名称
4.2. 远程仓库
远程仓库:通过局域网或互联网访问的仓库地址。
远程仓库,分为为全世界范围内的开发人员提供服务的中央仓库、为全世界范围内某些特定的用户提供服务的中央仓库镜像、为本公司提供服务自己架设的私服。
中央仓库是maven默认的远程仓库,其地址是:Just a moment…,中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载得到。
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上
5. 什么是依赖
添加jar包.
所有的资源是以gav进行定义的,也是通过gav来添加引用.
在大标签中,通过子标签,通过gav进行引用.
1 2 3 4 5 6 7
| <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.11</version> </dependency> </dependencies>
|
6. 什么是生命周期
它对应项目构建的过程,底层是Maven命令的调用(插件).
生命周期对应的Maven命令(了解):
- mvn clean 清理(会删除原来编译和测试的目录,即 target 目录,但是已经 install 到仓库里的包不会删除)
- mvn compile 编译主程序(会在当前目录下生成一个 target,里边存放编译主程序之后生成的字节码文件)
- mvn test-compile 编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)
- mvn test 测试(会生成一个目录surefire-reports,保存测试结果)
- mvn package 打包主程序(会编译、编译测试、测试、并且按照 pom.xml 配置把主程序打包生成 jar 包或者 war 包)
- mvn install 安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
- mvn deploy 部署主程序(部署到私服仓库中)。
7. 什么是插件
Maven本质上就是一个插件的框架 , 插件就是集成化的功能.
通过大标签,再通过子标签进行极简化的添加.
常见的插件:comcat插件,编译插件,MyBatis的逆向工程插件.
1 2 3 4 5 6 7 8 9 10 11
| <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>17</source> <target>17</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins>
|