SSM从入门到放弃02:pom.xml的简单介绍

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值