您好,登錄后才能下訂單哦!
博主也是在學習,看到一篇博客,自己一邊學習,一邊寫下了這篇博客
tyh-parent 本身就是一個父工程,所以它不需要繼承其他的工程, 我們主要在父工程中定義依賴 jar 包的版本和 Maven 插件的版本信息。 注意, 此處我使用的 maven 是 apache-maven-3.3.9 這個版本。
首先點擊【File】 菜單選項, 并在下拉框中選中【New】 , 接著點擊【Other】!
修改pom文件,添加依賴
<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>cn.yuechenc</groupId>
<artifactId>ycshop-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 集中定義依賴版本號 -->
<properties>
<junit.version>4.12</junit.version>
<slf4j.version>1.6.4</slf4j.version>
<!-- spring 使用 4 版本, spring5 需要 JDK1.8 與 tomcat7 插件有沖突 -->
<spring.version>4.3.18.RELEASE</spring.version>
<aspectj.version>1.9.1</aspectj.version>
<aopalliance.version>1.0</aopalliance.version>
<mysql-connector.version>5.1.46</mysql-connector.version>
<c3p0.version>0.9.5.2</c3p0.version>
<jstl.version>1.2</jstl.version>
<servlet-api.version>2.5</servlet-api.version>
<jsp-api.version>2.0</jsp-api.version>
<jackson.version>2.9.6</jackson.version>
<fileupload.version>1.3.3</fileupload.version>
<mybatis.version>3.4.6</mybatis.version>
<mybatis-spring.version>1.3.1</mybatis-spring.version>
<pagehelper.version>5.1.2</pagehelper.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- 單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 日志處理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- spring 相關依賴包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</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-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- aop 相關 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>${aopalliance.version}</version>
</dependency>
<!-- mysql 驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
</dependency>
<!-- c3p0 連接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0.version}</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- 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>
<!-- 文件上傳組件 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${fileupload.version}</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis 與 spring 繼承 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<!-- 分頁組件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<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>
</plugins>
<pluginManagement>
<plugins>
<!-- 配置 Tomcat 插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Pom.xml 文件說明:
1、 <dependencyManagement>節點: 依賴管理, 管理的就是 jar 包的版本號, 它里面并
不是真正的依賴, 如果你繼承 ycshop-parent 這個工程, 會發現什么 jar 包也沒有依賴過來。 工
程中用到的所有 jar 包都應該在這里有定義。
2、 <scope>provided</scope>屬性: 除了打包時不打包, 部署時也不會部署; 別的時候
都會全程參與, 編譯、 測試、 運行時候都會用到。 因為我們要把這個 war 包部署到 tomcat
里面去, tomcat 里面都會提供 servlet 和 jsp 的 API, 如果把它也打包到 war 包里面, 可能會
有沖突。
3、 <pluginManagement>節點: pluginManagemen 也是管理插件的版本, 這里面并不是
對插件實際的依賴, 而只是管理插件的版本。
ycshop-common 工程主要存放通用的工具類, 它本身是一個子工程, 所以它需要繼承父工
程, 并且它的打包方式是 jar。 注意, ycshop-common 工程并不是一個獨立的模塊。
與創建 ycshop-parent 項目一樣的操作方式, 創建一個【maven project】 。
修改pom文件,添加依賴
<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>
<parent>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ycshop-common</artifactId>
<!-- 依賴 jar 包:先只添加單元測試和日志處理的 jar 包依賴 -->
<dependencies>
<!-- 單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- 日志處理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
</dependencies>
</project>
ycshop-pojo 工程主要存放項目中通用的 pojo 對象。
和創建ycshop-commom工程同樣的方法創建一個名為“ycshop-pojo”的maven工程
修改pom文件,添加依賴
<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>
<parent>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ycshop-pojo</artifactId>
<!-- 依賴 jar 包:先只添加單元測試的 jar 包依賴 -->
<dependencies>
<!-- 單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
搭建 ycshop-manager 工程, 這是后臺管理子項目服務工程。 這個工程里面需要很多模塊,
我們須把這些模塊單獨拆分, 所以它應該是一個聚合工程。
聚合工程選擇 pom 打包形式。 并選擇父項目 ycshop-parent
修改pom文件,使其依賴于ycshop-common和ycshop-pojo工程
<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>
<parent>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ycshop-manager</artifactId>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-pojo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
此模塊作為一個輔助的jar包,不需要其他的依賴。
搭建 tyh-manager-dao 模塊的步驟同上面 tyh-manager-dto 一樣, 只不過是模塊名字改為
tyh-manager-dao 而已。
修改pom文件,添加dao層所需依賴
<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>
<parent>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ycshop-manager-dao</artifactId>
<dependencies>
<!-- 對 dto 的依賴 -->
<dependency>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager-dto</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- 日志處理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<!-- mysql 驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- c3p0 連接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<!-- mybatis 與 spring 集成 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<!-- 分頁組件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
</dependencies>
</project>
ycshop-manager-interfaces 模塊為 service 模塊的接口模塊。
搭建方式與 dao 模塊的搭建方式一致, 打包方式為 jar 包方式。(此處省略)
修改pom文件,使其依賴于dto和dao兩個模塊。
<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>
<parent>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ycshop-manager-interfaces</artifactId>
<dependencies>
<!-- 對 dto 的依賴 -->
<dependency>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager-dto</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 對 dao 的依賴 -->
<dependency>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
該模塊是個 war 工程, 既然 tyh-manager 工程是個聚合工程, 故可以聚合無數個模塊,
但是總歸要靠一個 war 工程來將所有的模塊聚合起來, 因此我們才需要新建一個 war 工程,
將來用于部署使用(可以單獨部署 service 應用做到前后端分離) 。
此時工程會報錯,是因為缺少web.xml文件
在圖中的webapp文件夾下創建WEB-INF文件夾,在他下面創建一個xml文件,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
</web-app>
此時已近解決了報錯的問題,接下來開始添加依賴——服務處需要調用dao層,所以要依賴于dao,另外還需要使用spring,
<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>
<parent>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ycshop-manager-service</artifactId>
<packaging>war</packaging>
<dependencies>
<!-- 對 dao 的依賴 -->
<dependency>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 對接口的依賴 -->
<dependency>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-manager-interfaces</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- spring 相關依賴包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<!-- aop 相關 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
</dependency>
</dependencies>
</project>
ycshop-manager-web 工程雖然從名稱上看好像是一個 ycshop-manager 的子工程。 但是在創建
的時候為了讓服務和前端頁面分離開來, 最好是將 web 工程單獨作為一個項目, 不要作為
聚合工程的子工程
因為是war打包方式,同樣會報錯,解決方式和service一樣
修改pom文件,添加依賴
<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>
<parent>
<groupId>cn.yuechenc</groupId>
<artifactId>ycshop-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ycshop-manager-web</artifactId>
<packaging>war</packaging>
<dependencies>
<!-- 單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- 日志處理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<!-- spring 相關依賴包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency><!-- aop 相關 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
到此,我們的第一個系統架構就算是搭建完成了
如果要運行 web 工程, 按照傳統的方式應該是將其發布到一個 tomcat 服務器中, 然后
啟動服務器來運行這個工程。
但是在這里我們應該在其 pom.xml 文件中配置一個 maven 的 tomcat 插件。 那么為什么
要使用 maven tomcat 插件來啟動 web 工程呢?
這是因為在互聯網項目中, 動輒十幾個甚至好幾十個 web 工程, 如果按照傳統的添加
tomcat 服務器的方式來啟動的話, 那么我們為了避免端口沖突, 每增加一個 web 工程都要
修改三個端口, 非常麻煩。 而使用 maven tomcat 插件來啟動工程, 則只需改一個端口即可,
顯然簡單了很多。
先來看 web 工程。 它可以獨立運行, 那么應該怎么運行呢?
為了方便測試, 在 webapp 文件夾下, 創建一個 Index.jsp 文件。 如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>歡迎進入越宸閣!</h2>
</body>
</html>
在web工程的pom文件中加入tomcat插件
<!-- 配置 tomcat 插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
說明:
1、 其中<path>/<path>
的意思是輸入完 localhost:端口號之后便可以直接訪問工程首頁了
2、 <port>8080</port>
的意思是指定該 web 工程的訪問端口號。
此時我們最好對之前的項目都進行install使其重新編譯
因為項目之間存在依賴關系,所以最好按照創建順序依次install
下面,我們啟動項目
在 Goals 輸入框中輸入: clean tomcat7:run, 點擊【Apply】 和【Run】 來運行該 web 工程。
運行完成,會在控制臺打印出運行的url和端口
最后,我們在瀏覽器中訪問此url
與上一節基本一樣。 在 ycshop-manager 項目 pom.xml 中配置 tomcat 插件。 并修改其端口,
與 web 項目端口不同。
<!-- 配置 tomcat 插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8081</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
和啟動web同樣的方法啟動manager項目
此時會打印出8081端口的url
到此我們的工程就算是搭建完成了。
下一篇,將會對整個系統進行ssm框架的整合
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。