一 maven是什么
定义: maven是基于项目对象模型 (POM),可以通过一段配置 来管理项目的构建,来报告和文档的项目管理工具。
简单的讲就是解决了jar包之间相互依赖的工具 通过pom.ml文件配置就能够获取jar 不需要自己去网上找手动添加
二 Maven 安装
下载地址:http://maven.apache.org/download.cgi
下载完成后的目录结构如下图所示:
bin:保存了maven相关的命令,例如:mvn.bat。
boot:maven运行需要的类加载器;
conf:setting.xml整个maven工具的核心配置文件;
lib:maven运行依赖的jar包
2.2 配置MAVEN_HOME环境变量
MAVEN3.3以上版本需要安装JDK.17+版本。同时,需要还需要配置JAVA_HOME和MAVEN_HOME环境变量。
配置完成后,打开命令窗口,输入“mvn -v”命令。界面效果如下图所示
配置仓库
Maven仓库分为三种:本地仓库、远程仓库和中央仓库。
本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包。项目使用的一些插件和jar包应该优先从本地仓库中下载。
远程仓库:如果本地仓库没有想要的插件或jar包,那么,maven就会去远程仓库中下载。
中央仓库:在Maven工具中内置了一个远程仓库(http://repo1.maven.org/maven2),它就是一个中央仓库,用于服务全球的Maven用户。它里面包含了非常全的jar包,包含了世界上大部分流行的开源项目构件。该仓库是由Maven团队负责维护。
2.3.2 配置仓库路径
修改MAVEN_HOME/conf/settings.xml配置文件,然后查找localRepository节点,该节点就是maven本地仓库的路径。
三 POM全景图
POM的英文全名为Project Object Model,即项目对象模型,它是maven项目的核心配置文件。在POM文件中可以定义项目的坐标、项目依赖、项目信息、插件等等。
完整的pom.xml
<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.chinasofti</groupId>
<artifactId>day28-maven-ssm</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>day28-maven-ssm Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 集中定义依赖版本号 -->
<properties>
<spring.version>5.1.9.RELEASE</spring.version>
<junit.version>4.9</junit.version>
<mybatis.version>3.5.2</mybatis.version>
<mysql.version>5.1.22</mysql.version>
<mybatis-spring.version>2.0.2</mybatis-spring.version>
<servlet.version>3.1.0</servlet.version>
<commons.fileupload.version>1.3.1</commons.fileupload.version>
<commons.io.version>1.3.2</commons.io.version>
<jackson.version>2.9.9</jackson.version>
</properties>
<!-- 配置依赖关系 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 整合MyBatis依赖的jar包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- MyBatis和Spring整合所依赖的jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8888</port>
<path>/maven-ssm</path>
</configuration>
</plugin>
</plugins>
</build>
</project>