Maven學習總結——IDEA中使用Maven構建多模組專案
在平時的Javaweb專案開發中為了便於後期的維護,我們一般會進行分層開發,最常見的就是分為domain(域模型層)、dao(資料庫訪問層)、service(業務邏輯層)、web(表現層),這樣分層之後,各個層之間的職責會比較明確,後期維護起來也相對比較容易,今天我們就是使用Maven來構建以上的各個層。
專案結構如下:
mBlindDates
|----pom.xml
|----system_domain
|----pom.xml
|----system_dao
|----pom.xml
|----system_service
|----pom.xml
|----system_web
|----pom.xml
一、建立mBlindDates專案
建立mBlindDates,用來給各個子模組繼承。
如下圖所示:
命令執行完成之後可以看到在當前目錄(C:\Documents and Settings\Administrator)生成了mBlindDates目錄,裡面有一個src目錄和一個pom.xml檔案,將src資料夾刪除,然後修改pom.xml檔案,將<packaging>jar</packaging>修改為<packaging>pom</packaging>,pom表示它是一個被繼承的模組,修改後的內容如下:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<projectxmlns="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.cmbcb</groupId> <artifactId>mBlindDates</artifactId><version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>mBlindDates</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
二、建立sytem_domain模組
在建立好的mBlindDates目錄,右鍵 -> New -> Module:
跟【建立mBlindDates】中流程一致。
命令執行完成之後可以看到在mBlindDates目錄中生成了system_domain,裡面包含src目錄和pom.xml檔案。
同時,在mBlindDates目錄中的pom.xml檔案自動添加了如下內容:
<modules> <module>system_domain</module> </modules>
這時,mBlindDates的pom.xml檔案如下:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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.cmbcb</groupId> <artifactId>mBlindDates</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>system_domain</module> </modules> <packaging>pom</packaging> <name>mBlindDates</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
修改system_domain目錄中的pom.xml檔案,把<groupId>com.cmbcb</groupId>和<version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因為groupId和version會繼承mBlindDates中的groupId和version,packaging設定打包方式為jar
修改過後的pom.xml檔案如下:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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"> <parent> <artifactId>mBlindDates</artifactId> <groupId>com.cmbcb</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>system_domain</artifactId> <packaging>jar</packaging> <name>system_domain</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
三、建立sytem_dao模組
在建立好的mBlindDates目錄,右鍵 -> New -> Module::
跟【建立mBlindDates】中流程一致。
命令執行完成之後可以看到在mBlindDates目錄中生成了system_dao,裡面包含src目錄和pom.xml檔案。如下圖所示:
同時,在mBlindDates目錄中的pom.xml檔案自動變成如下內容:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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.cmbcb</groupId> <artifactId>mBlindDates</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>system_domain</module> <module>system_dao</module> </modules> <packaging>pom</packaging> <name>mBlindDates</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
修改system_dao目錄中的pom.xml檔案,,把<groupId>com.cmbcb</groupId>和<version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因為groupId和version會繼承mBlindDates中的groupId和version,packaging設定打包方式為jar,同時新增對system_domain模組的依賴,修改後的內容如下:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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"> <parent> <artifactId>mBlindDates</artifactId> <groupId>com.cmbcb</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>system_dao</artifactId> <packaging>jar</packaging> <name>system_dao</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!--system-dao需要使用到system-domain中的類,所以需要新增對system-domain模組的依賴--> <dependency> <groupId>com.cmbcb</groupId> <artifactId>system_domain</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
四、建立system_service模組
在建立好的mBlindDates目錄,右鍵 -> New -> Module::
跟【建立mBlindDates】中流程一致。
命令執行完成之後可以看到在mBlindDates目錄中生成了system_service,裡面包含src目錄和pom.xml檔案。如下圖所示:
同時,在mBlindDates目錄中的pom.xml檔案自動變成如下內容:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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.cmbcb</groupId> <artifactId>mBlindDates</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>system_domain</module> <module>system_dao</module> <module>system_service</module> </modules> <packaging>pom</packaging> <name>mBlindDates</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
修改system_service目錄中的pom.xml檔案,,把<groupId>com.cmbcb</groupId>和<version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因為groupId和version會繼承mBlindDates中的groupId和version,packaging設定打包方式為jar,同時新增對system_dao模組的依賴,system_service依賴system_dao和system_domain,但是我們只需新增system_dao的依賴即可,因為system_dao已經依賴了system_domain。修改後的內容如下:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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"> <parent> <artifactId>mBlindDates</artifactId> <groupId>com.cmbcb</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>system_service</artifactId> <packaging>jar</packaging> <name>system_service</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- system-service依賴system-dao和system-domain, 但是我們只需新增system-dao的依賴即可,因為system-dao已經依賴了system-domain --> <dependency> <groupId>com.cmbcb</groupId> <artifactId>system_dao</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
五、建立system_web模組
在建立好的mBlindDates目錄,右鍵 -> New -> Module::
如下圖所示:
命令執行完成之後可以看到在mBlindDates目錄中生成了system_web,裡面包含src目錄和pom.xml檔案。
在\system_web\src\main\webapp目錄中還生成了一個簡單的index.jsp。
在system_web\src\main\webapp\WEB-INF目錄中生成了web.xml。如下圖所示:
裡面的內容為
<html> <body> <h2>Hello World!</h2> </body> </html>
同時,在mBlindDates目錄中的pom.xml檔案自動變成如下內容:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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.cmbcb</groupId> <artifactId>mBlindDates</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>system_domain</module> <module>system_dao</module> <module>system_service</module> <module>system_web</module> </modules> <packaging>pom</packaging> <name>mBlindDates</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
修改system_web目錄中的pom.xml檔案,,把<groupId>com.cmbcb</groupId>和<version>1.0-SNAPSHOT</version>去掉,因為groupId和version會繼承mBlindDates中的groupId和version,同時新增對system_service模組的依賴,修改後的內容如下:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
<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/maven-v4_0_0.xsd"> <parent> <artifactId>mBlindDates</artifactId> <groupId>com.cmbcb</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>system_web</artifactId> <packaging>war</packaging> <name>system_web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- system-web依賴system-service --> <dependency> <groupId>com.cmbcb</groupId> <artifactId>system_service</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <finalName>system_web</finalName> </build> </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
注意,web專案的打包方式是war。
六、編譯執行專案
經過上面的五個步驟,相關的模組全部建立完成,怎麼執行起來呢。由於最終執行的是system-web模組,所以我們對該模組新增jetty支援,方便測試執行。修改system-web專案的pom.xml如下:
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0"?> 2 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>com.cmbcb</groupId> 7 <artifactId>mBlindDates</artifactId> 8 <version>1.0-SNAPSHOT</version> 9 </parent> 10 11 <artifactId>system_web</artifactId> 12 <packaging>war</packaging> 13 14 <name>system-web Maven Webapp</name> 15 <url>http://maven.apache.org</url> 16 <dependencies> 17 <!-- 18 system-web依賴system-service 19 --> 20 <dependency> 21 <groupId>com.cmbcb</groupId> 22 <artifactId>system_service</artifactId> 23 <version>${project.version}</version> 24 </dependency> 25 </dependencies> 26 </project>
![複製程式碼](http://common.cnblogs.com/images/copycode.gif)
在命令列進入system-parent目錄,然後執行下列命令:
mvn clean install
如下圖所示:
相關推薦
Maven學習總結——IDEA中使用Maven構建多模組專案
在平時的Javaweb專案開發中為了便於後期的維護,我們一般會進行分層開發,最常見的就是分為domain(域模型層)、dao(資料庫訪問層)、service(業務邏輯層)、web(表現層),這樣分層之後,各個層之間的職責會比較明確,後期維護起來也相對比較容易,今天我們就是使用Maven來構建以上的各個層
Maven學習總結(4)-使用Maven構建多模組專案
我用的IDE是eclipse,以下是多模組專案構建步驟。 一、新建Maven Project 1.New-Maven Project-Next 2.操作如下 3.如下填寫,然後Finish 說明:maven中jar、war、pom的區別
Maven學習總結(三)——使用Maven構建專案
maven作為一個高度自動化構建工具,本身提供了構建專案的功能,下面就來體驗一下使用maven構建專案的過程。 一、構建Jave專案 1.1、建立Jave Project 1、使用mvn archetype:generate命令,如下所示: mvn archet
maven 單獨構建多模組專案中的單個模組
最近在公司的一個專案裡用到了maven的多模組,由於專案比較大,每次修改後構建整個工程耗時太久,需要單獨構建某個模組,mvn有支援的選項: -pl, --projects Build specified reactor projects instead
maven介紹以及idea中maven的使用
Maven 除了以程式構建能力為特色之外,還提供高階專案管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建指令碼就可以構建簡單的專案。由於 Maven 的面向專案的方法,許多 Apache Jakarta 專案發文時使用 Maven,而且
Maven構建多模組專案
在平時的Javaweb專案開發中為了便於後期的維護,我們一般會進行分層開發,最常見的就是分為domain(域模型層)、dao(資料庫訪問層)、service(業務邏輯層)、web(表現層),這樣分層之後,各個層之間的職責會比較明確,後期維護起來也相對比較容易,今天我們就是使用
IDEA中使用springBoot+gradle構建多模組專案
最近專案中用到了springboot+gradle來構建多模組專案,寫這篇文章純當作筆記吧,同時也分享給大家。 gradle和maven是目前很便捷的兩款專案構建工具,都有各自的優勢。據官方統計,gradle比maven構建專案時快100倍以上。廢話不多說,下面介紹一下如何
使用maven構建多模組專案
①首先建立一個springboot專案 ②再new一個新的模組(新模組依然是springboot專案,同理可以繼續建立需要的新模組) 目錄結構如下圖所示 ③構建模組的依賴關係,模組之間的依賴如下圖所示 在父模組的pom檔案中新增專案的所有依賴,子模組可以繼
使用maven構建多模組專案(二)
1. 使用dependencyManagement管理依賴 dependencyManagement的作用:Maven使用dependencyManagement元素來提供一種管理依賴版本號的方法。 (1)helloweb-parent——>pom
使用maven構建多模組專案(一)
1. 建立helloweb專案的骨架結構 (1)建立一個maven專案helloweb,刪除target資料夾,如下圖所示 (2)在helloweb目錄下,建立以下4個資料夾 a. helloweb-parent b. helloweb-en
Maven權威指南(續)之多模組專案構建及POM優化
在《Maven權威指南》部分I中,第6、7章介紹了多模組專案及多模組企業級專案的構建思想。對於多模組的情況,無論是簡單的或是企業級的,對於POM來說,重點就是分析處理好父POM與子POM之間的關係,包括依賴管理(DependencyManagement)、外掛管理(Plu
【日常工作】maven構建多模組專案依賴問題——dependencyManagement、dependencies
環境: MacBook Pro 15 jdk8 IntelliJ IDEA 引子 對於maven多模組專案,自然會想到每個模組都有自己的pom檔案,每個模組都可以在自己的pom中定義自己需要的dependency;很容易想到,多個pom
maven構建多模組專案的兩種方式
maven構建多模組父子專案有兩種方式,一種通過Eclipse工具去建立,另一種在可以在控制檯通過maven指令建立專案。下面舉例一步步構建下面的JavaWeb專案 project-parent |----pom.xml |-
在IDEA中如何將多模組Spring boot專案打包
SpringBoot就是一個內嵌WEB伺服器(tomcat/jetty)可執行程式的框架。 所以開發的web應用不需要作為war包部署到web伺服器中,而是作為一個可執行程式,可執行的jar包部署就可以了。 專案的釋出: 1.修改父模組pom檔案 去掉maven打包
IntelliJ IDEA 中Spring Boot多模組打包
1.專案結構 2.主模組base-data的pom檔案中新增 <build> <plugins> <plugin> <groupId>org
Springboot+Gradle+Docker構建多模組專案
文章目錄 背景 引入子模組時exclude失效 Gradle Docker plugin推薦 Docker打包SpringBoot多模組專案 gradle構建的jar包找不到main入口 背景 原有Springboot基
springboot+gradle 構建多模組專案
springboot用以進行web專案開發的便捷性,本文不再贅述,主要是想將工作中基於springboot與gradle的多模組專案的構建經驗進行總結與歸納。 1.建立專案 首先安裝java和gradle,本文選用的java版本為1.8.0_40,g
Gradle構建多模組專案
廢話不多說,直接進入主題。 1. 建立專案 首先建立專案,名稱為 test: mkdir test && cd test gradle init 這時候的專案結構如下: ➜ test tree . ├── build.gradle ├── gradl
IDEA建立SpringBoot的多模組專案教程
最近在寫一個多模組的SpringBoot專案,基於過程總了一些總結,故把SpringBoot多個模組的專案建立記錄下來。 首先,先建立一個父工程: (1)在IDEA工具欄選擇File->New->Project (2)選擇Spring Initializr,預設選擇Default,然後點選Nex
Maven學習總結(八):Myecplise中配置maven
第一步:下載maven安裝包,配置環境變數M2_HOME;變數值為maven的解壓目錄。 第二步:在eclipse4.0之前的版本需要安裝maven外掛,方法即:將maven外掛包複製到eclipse安裝目錄的dropins資料夾下,安裝之後版本的eclipse和myeclipse,無需安裝外掛。本人是用的