一、web專案開發進階之分模組管理專案之通用模組
阿新 • • 發佈:2019-01-28
以前的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>