pom.xml的简单介绍
这里先贴出在我看来最简单的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.qdsygk</groupId>
<artifactId>ams</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<mysql.version>5.1.38</spring.version>
</properties>
<dependencies>
<!-- 数据库 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
</project>
如果使用idea创建的maven项目,那么在这里除了packaging、properties和dependencies之外的所有标签,都是maven自动生成的。
首先这里会有project标签,顾名思义用来描述一个项目的所有基本属性。
project标签中的xmlns等属性,可以参考这篇文章来理解:https://www.cnblogs.com/osttwz/p/6892999.html ,在此就不做过多描述。
modelVersion,我的理解是maven提供的model模型的版本,一般应该也无须care(至少我还没有碰到有什么细节需要特意修改这个版本号)。
groupId,大致用来标志公司事业群组,表明你的项目是在什么样的大背景下进行的。通常这里会使用公司域名倒置的格式来书写。如:com.xxx
artifactId,描述制品名,所谓制品其实就是你的项目最终的一个编译产出会以怎样的“代号”呈现,说白了也就是你的项目名。如:test
version,用来标志你的版本
packaging,描述你的项目打包方式,可以是jar,也可以是war,这里配置为war
properties,在这里可以理解为声明环境变量,其中的每一个标签都相当于一个环境变量,比如上面的代码里,我相当于声明了一个 mysql.version = 5.1.38,那么在pom.xml里如果有什么需要用到它,使用${}就可以使用,譬如${mysql.version}
dependencies,外部依赖。直白一点就是你所需要的所有外部工具包,比如常见的数据库驱动包、jsp-api、servlet-api、上传下载文件的插件包、spring库、日志插件包等等。而在这里我举例了一个mysql的驱动包,groupId、artifactId、version三大要素,与你的项目如出一辙。在IDE帮你加载好依赖的时候,你便可以随意使用其中的类库。
那么问题来了,能不能不写dependencies。当然是可以的。你完全可以自主把jar包下载到你本地,然后拷贝到WEB-INF的lib文件夹中,就可以使用了。
以上便是一个很基础的pom.xml。如果你想了解更多更细致的配置,可以参考这篇文章,感觉写的已经非常细致了:https://blog.csdn.net/qq_33363618/article/details/79438044
那么问题又来了,作为SSM项目,我应该配置哪些外部依赖?
SSM指Spring、SpringMVC、MyBatis的集成框架,而SpringMVC是Spring的衍生框架之一,那么Spring、MyBatis是必不可少的,此外你还需要数据库组件、WEB组件、日志组件、JSON组件、上传下载组件、分页组件 等等(根据自需)
下面po出我的项目所需的一些外部依赖,如果你觉得跟你的项目差不多,你大可以一股脑复制过来,因为基本包含了很多基础依赖。
<properties>
<spring.version>4.3.0.RELEASE</spring.version>
</properties>
<dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- 数据库 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!--Servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>2.5.2</version>
</dependency>
<!-- StringUtil -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<!-- json-lib -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!--日志-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
<!-- google java lib -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>17.0</version>
</dependency>
<!-- Spring -->
<!-- Spring Core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring Web-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring Data-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring Test-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
关于Spring的类库,可以参考这篇文章去了解更多:http://www.cnblogs.com/zilincom/articles/6007969.html