一、web项目开发进阶之分模块管理项目之通用模块

  以前的web项目都是统一一个工程,其他人员在这个项目拉取分支进行开发,但是若需要多个人协作同时进行开发时,会造成各种各样的问题。为了解决这些问题,按照业务逻辑进行区分,将一个项目按照多个模块进行构建。
(一)所有项目的父模块“parent”
  父模块的主要功能是管理各种依赖及其依赖的版本,同时注意打包方式为“jar”包(使用“mvn clean install命令,即可将jar包发布到本地仓库,以供其他模块依赖”),以供子模块依赖!如下:

<?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>org.pc</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>

        <spring.version>4.3.17.RELEASE</spring.version>

        <mysql.connector.java.version>5.1.29</mysql.connector.java.version>
        <alibaba.druid.version>1.0.2</alibaba.druid.version>
        <mybatis.version>3.4.2</mybatis.version>
        <mybatis.pagehelper.version>5.1.4</mybatis.pagehelper.version>
        <spring.mybatis.version>1.3.1</spring.mybatis.version>

        <javax.servlet.api.version>3.1.0</javax.servlet.api.version>
        <jsp.api.version>2.2.1-b03</jsp.api.version>
        <jstl.version>1.2</jstl.version>

        <jedis.version>2.9.0</jedis.version>
        <solr.solrj.version>7.4.0</solr.solrj.version>

        <junit.version>4.12</junit.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!--
             为了防止用Maven管理Spring项目时,不同的项目依赖了不同版本的Spring,可以使用Maven BOM来解决者一问题,
                                 即可统一版本,而且,在引入BOM之后,在引入其他Spring依赖时,都无需指定版本
            -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>${spring.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!--###################### spring用到的依赖 start######################-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <!--
         这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion of Control
                / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI 支持,引入spring-core.jar
                及spring-beans.jar 文件就可以了。外部依赖spring-core,cglib-nodep.jar。
        -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <!-- 排除commmons-logging -->
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--  spring表达式语言  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
        </dependency>
        <!--  为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <!-- 面向切面编程 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
        </dependency>
        <!--###################### spring用到的依赖 end######################-->

        <!--######################数据库相关 start############################-->
        <!--  MYSQL(连接mysql数据库常用)  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.connector.java.version}</version>
        </dependency>

        <!--  阿里巴巴数据源包  -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${alibaba.druid.version}</version>
        </dependency>
        <!--*************以下是SpringMVC中Mybatis需要用到的依赖******************-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!--mybatis-spring整合包,这样就可以通过spring配置bean的方式进行mybatis配置了,不然需要单独使用mybatis的配置-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${spring.mybatis.version}</version>
        </dependency>
        <!-- mybatis分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>${mybatis.pagehelper.version}</version>
        </dependency>
        <!--*************以上是SpringMVC中Mybatis需要用到的依赖******************-->
        <!--######################数据库相关 end############################-->

        <!--###################### jsp相关JAR包 start######################-->
        <!--  Servlet  -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${javax.servlet.api.version}</version>
            <scope>provided</scope>
        </dependency>
        <!--  JSP  -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2.1-b03</version>
        </dependency>
        <!--  JSTL  -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!--###################### jsp相关JAR包 end######################-->

        <!-- redis客户端 -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>${jedis.version}</version>
        </dependency>
        <!-- solr-solrj全文搜索 -->
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>${solr.solrj.version}</version>
        </dependency>
        <!--  JUNIT(测试工具类)  -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

(二)常用工具模块“common”

<?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>org.pc</groupId>
    <artifactId>common</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <commons.cli.version>1.4</commons.cli.version>
        <commons.codec.version>1.11</commons.codec.version>
        <commons.fileupload.version>1.3.3</commons.fileupload.version>
        <commons.io.version>2.6</commons.io.version>
        <commons.lang3.version>3.7</commons.lang3.version>
        <commons.collections4.version>4.1</commons.collections4.version>
        <jackson.version>2.8.7</jackson.version>
        <logback.ext.spring.version>0.1.4</logback.ext.spring.version>
        <logback.classic.version>1.1.7</logback.classic.version>
        <jcl.over.slf4j.version>1.7.25</jcl.over.slf4j.version>
    </properties>

    <dependencies>
        <!-- CLI 即Command Line Interface,也就是"命令行接口",它为Java 程序访问和解析命令行
             参数提供了一种统一的接口。  -->
        <dependency>
            <groupId>commons-cli</groupId>
            <artifactId>commons-cli</artifactId>
            <version>${commons.cli.version}</version>
        </dependency>
        <!-- 在实际的应用中,我们经常需要对字符串进行编解码,Apache Commons家族中的Commons Codec
             就提供了一些公共的编解码实现,比如Base64, Hex, MD5,Phonetic and URLs等等。 -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${commons.codec.version}</version>
        </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>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons.lang3.version}</version>
        </dependency>
        <!-- 集合工具 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>${commons.collections4.version}</version>
        </dependency>

        <!--  引入json相关3个jar包,处理json请求  -->
        <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-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- *************以上是JSON依赖(end)****************** -->

        <!-- *************以下是日志****************** -->
        <!--logback-classic中就包含了logback-core、slf4j-apiJAR包。作用就是打印日志提供方法-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.classic.version}</version>
        </dependency>
        <!-- logback-ext-spring是Spring提供的,它用于提供listener监听器。 -->
        <dependency>
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-spring</artifactId>
            <version>${logback.ext.spring.version}</version>
        </dependency>
        <!-- jcl-over-slf4j用来把Spring中大量使用common-logging替换成slf4j。只有有个这个包,才能打印出
        Spring框架本身的信息数据。 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${jcl.over.slf4j.version}</version>
        </dependency>

        <!-- *************以上是日志****************** -->
    </dependencies>

</project>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值