第三阶段--Maven基础到高级--01
- 一、Maven简介
- 一:资料格式
- 二:Maven下载
- 三:Maven安装
- 四:Maven环境变量配置
- 五:Maven坐标
- 六:本地仓库配置
- 七:仓库配置
- 二、Maven项目
- Tomcat 7运行插件
- pom.xml讲解
- 依赖传递
- 依赖范围
- 依赖范围的传递性
- 三、生命周期与插件
- 生命周期
- 插件
一、Maven简介
一:资料格式
配置文件
<groupId>com.itcast</groupId>
Java代码
Statement stat = con.createStatement ();
示例
<groupId>com. itcast</groupid>
命令
mvn test
二:Maven下载
官网链接: http://maven.apache.org/ 下载地址链接: http://maven.apache.org/download.cgi
三:Maven安装
四:Maven环境变量配置
依赖Java,需要配置
JAVA_HOME
设置MAVEN自身的运行环境,需要配置MAVEN_HOME
测试环境配置结果MVN
五:Maven坐标
什么是坐标?
Maven中的坐标用于描述仓库中资源的位置链接: https://repo1.maven.org/maven2/
Maven坐标主要组成
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: org.mybatis)
artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式
Maven坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
六:本地仓库配置
Maven启动后,会自动保存下载的资源到本地仓库
默认位置
<localRepository>$ {user.home } /.m2 / repository</localRepository>
当前目录位置为登录用户名所在目录下的.m2文件夹中
自定义位置
<localRepository>D: \maven \repository</ localRepository>
当前目录位置为D:\maven\repository
文件夹中
七:仓库配置
远程仓库配置
Maven默认连接的仓库位置
镜像仓库配置在settting文件中配置阿里云镜像仓库
<!-- 配置具体的仓库的下载镜像 -->
<mirror>
<!-- 此镜像的唯一标识符,用来区分不同的mirror元素 -->
<id>nexus-aliyun</id>
<!-- 对哪种仓库进行镜像,简单说就是替代哪个仓库 -->
<mirrorOf>central</mirrorOf>
<!-- 镜像名称 -->
<name>Nexus aliyun</name>
<!-- 镜像URL -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
二、Maven项目
在src同层目录下创建pom.xml
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itheima</groupId>
<artifactId>project-java</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
Maven项目构建命令
插件创建工程
创建工程
mvn archetype:generate
-DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-Dversion=0.0.1-snapshot
-DinteractiveMode=false
创建Java工程 -quickstart
mvn archetype:generate -DgroupId=com.itcast -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
创建web工程 -webapp
mvn archetype:generate -DgroupId=com.itcast -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
Tomcat 7运行插件
<!--构建-->
<build>
<!--设置插件-->
<plugins>
<!--具体的插件-->
<plugin>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin -->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
pom.xml讲解
<?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/maven-v4_0_0.xsd">
<!--指定pom的模型版本-->
<modelVersion>4.0.0</modelVersion>
<!--打包方式,web工程打包为war,java工程打包为jar-->
<packaging>war</packaging>
<name>web02</name>
<!--组织id-->
<groupId>com.itcast</groupId>
<!--项目id-->
<artifactId>web02</artifactId>
<!--版本号:release 完成版,snapshot 开发版-->
<version>1.0-SNAPSHOT</version>
<!--设置当前工程的所有依赖jar-->
<dependencies>
<!--设置具体的依赖-->
<dependency>
<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目组id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--构建-->
<build>
<!--设置插件-->
<plugins>
<!--具体的插件配置-->
<plugin>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin -->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<!--配置-->
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
依赖传递
可选依赖(不透明)
<optional>true</optional>
排除依赖(不需要)
<!--排除依赖-->
<exclusions>
<!--排除依赖具体的-->
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
依赖范围
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围
主程序
范围有效(main
文件夹范围内)测试程序
范围有效(test
文件夹范围内)是否参与打包
(package
指令范围内)
scope | 主代码 | 测试代码 | 打包 | 范例 |
compile(默认) | Y | Y | Y | log4j |
test | Y | junit | ||
provided | Y | Y | servlet-api | |
runtime | Y | jdbc |
依赖范围的传递性
三、生命周期与插件
生命周期
插件