使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合)
文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關注我的微信公眾號:好好學java,獲取優質學習資源。
?
終于有時間搞java了,今天使用IDEA基于maven搭建了多模塊聚合工程,經過了多番嘗試,終于成功啦!
注意:這里是在原作者的基礎上改進的版本,原作者的版本的pom依賴存在問題,所以,這里的依賴全部是我自己的依賴,圖片按照這個來完全沒有問題!
一.工程目錄
下面是搭建之后的目錄
這里寫圖片描述
先看一下目錄關系
taotao-parent(父工程管理jar包的版本)
|--taotao-common(把通用的工具類打包)
|--taotao-manager(繼承父工程)
??|-taotao-manager-pojo|-taotao-manager-dao|-taotao-manager-service|-taotao-manager-web(war包)taotao-parent 為項目的父工程,用來管理jar包及版本
taotao-common為通用工程,繼承父工程,就是把通用的工具類打包
taotao-manager為開發工程,同樣繼承父工程
其中,taotao-manager-pojo,taotao-manager-dao,taotao-manager-service和taotao-manager-web均為開發工程的一個子模塊,依賴于開發工程taotao-manager
前3個子模塊打成jar包,taotao-manager-web打成war包
二.創建工程
1.先創建一個空工程,步驟如下:
File——>new——>project
這里寫圖片描述
選擇Empty——>next
這里寫圖片描述
填寫工程名稱和位置,點擊finnish,完成了空工程的創建
這里寫圖片描述
2.創建父工程 taotao-parent,步驟如下:
File——>New——>Module
這里寫圖片描述
點maven,勾選archetype,選quickstart這項,然后Next下一步
這里寫圖片描述
填寫GroupId,一般為組織名稱;填寫ArtifactId,為項目名稱
這里寫圖片描述
選擇本地maven目錄及maven配置文件
這里寫圖片描述
填寫項目名稱及位置,點Finish,父工程創建完成
這里寫圖片描述
等待生成pom文件,修改打包方式為pom,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>com.chinapost</groupId><artifactId>post-parent</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><!--?集中定義依賴版本號?--><properties><junit.version>4.10</junit.version><spring.version>4.1.3.RELEASE</spring.version><mybatis.version>3.2.8</mybatis.version><mybatis.spring.version>1.2.2</mybatis.spring.version><mybatis.paginator.version>1.2.15</mybatis.paginator.version><mysql.version>5.1.32</mysql.version><slf4j.version>1.6.4</slf4j.version><jackson.version>2.4.2</jackson.version><druid.version>1.0.9</druid.version><httpclient.version>4.3.5</httpclient.version><jstl.version>1.2</jstl.version><servlet-api.version>2.5</servlet-api.version><jsp-api.version>2.0</jsp-api.version><joda-time.version>2.5</joda-time.version><commons-lang3.version>3.3.2</commons-lang3.version><commons-io.version>1.3.2</commons-io.version></properties><dependencyManagement><dependencies><!--?單元測試?--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!--?Spring?--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</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><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><!--?Mybatis?--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><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>3.7.5</version></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>0.9.1</version></dependency><!--?通用Mapper?--><dependency><groupId>com.github.abel533</groupId><artifactId>mapper</artifactId><version>2.3.4</version></dependency><!--?MySql?--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!--?Jackson?Json處理工具包?--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><!--?連接池?--><dependency><groupId>com.jolbox</groupId><artifactId>bonecp-spring</artifactId><version>0.8.0.RELEASE</version></dependency><!--?httpclient?--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>${httpclient.version}</version></dependency><!--?JSP相關?--><dependency><groupId>jstl</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><!--?時間操作組件?--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>${joda-time.version}</version></dependency><!--?Apache工具組件?--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>${commons-io.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>3.創建通用工程taotao-common
File——>New——>Module
這里寫圖片描述
點maven后直接next下一步
這里寫圖片描述
繼承taotao-parent,填寫ArtifactId,然后next下一步
這里寫圖片描述
填寫通用模塊名稱,點finish,通用模塊創建完成
這里寫圖片描述
開發模塊taotao-manager與通用模塊創建方式一致
taotao-common的pom.xml
<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>com.chinapost</groupId><artifactId>post-parent</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.chinapost</groupId><artifactId>post-common</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><!--?Jackson?Json處理工具包?--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><!--?時間操作組件?--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>${joda-time.version}</version></dependency><!--?Apache工具組件?--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency></dependencies> </project>taotao-manager的pom.xml
<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>com.chinapost</groupId><artifactId>post-parent</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.chinapost</groupId><artifactId>post-manager</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><dependencies><dependency><groupId>com.chinapost</groupId><artifactId>post-common</artifactId><version>1.0-SNAPSHOT</version></dependency><!--?單元測試?--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency><!--?Apache工具組件?--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>${commons-io.version}</version></dependency></dependencies><build><plugins><!--?配置Tomcat插件?--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><port>8999</port><path>/</path></configuration></plugin></plugins></build><modules><module>post-manager-pojo</module><module>post-manager-dao</module><module>post-manager-service</module><module>post-manager-web</module></modules> </project>4.創建開發模塊下的子模塊,分兩類介紹,taotao-manager-pojo,taotao-manager-dao,taotao-manager-service創建方式一樣,taotao-manager-web的創建有點差別
1)以taotao-manager-pojo為例
File——>new——>module
這里寫圖片描述
選maven——>勾選archetype——>選quickstart這項——>點next
這里寫圖片描述
繼承taotao-manager,填寫ArtifactId
這里寫圖片描述
這里注意改寫路徑,點finish,一個子模塊創建完成
這里寫圖片描述
taotao-manager-pojo的pom.xml
<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>com.chinapost</groupId><artifactId>post-manager</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.chinapost</groupId><artifactId>post-manager-pojo</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>com.chinapost</groupId><artifactId>post-common</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>javax.persistence</groupId><artifactId>persistence-api</artifactId><version>1.0</version></dependency></dependencies> </project>taotao-manager-dao的pom.xml
<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>post-manager</artifactId><groupId>com.chinapost</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>post-manager-dao</artifactId><packaging>jar</packaging><name>post-manager-dao</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.chinapost</groupId><artifactId>post-manager-pojo</artifactId><version>1.0-SNAPSHOT</version></dependency><!--?Mybatis?--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><!--?通用Mapper?--><dependency><groupId>com.github.abel533</groupId><artifactId>mapper</artifactId></dependency></dependencies> </project>??taotao-manager-service的pom.xml
<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>post-manager</artifactId><groupId>com.chinapost</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>post-manager-service</artifactId><packaging>jar</packaging><name>post-manager-service</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.chinapost</groupId><artifactId>post-manager-dao</artifactId><version>1.0-SNAPSHOT</version></dependency><!--?Spring?--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><!--?分頁助手?--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId></dependency></dependencies> </project>??2)taotao-manager-web創建
同樣File——>New——>Module
只不過這里選擇webapp這項(唯一不同的地方,其他地方類似),點next下一步
這里寫圖片描述
同樣繼承taotao-manager
這里寫圖片描述
同樣需要改寫路徑,點擊finish,taotao-manager-web子模塊創建完成
這里寫圖片描述
taotao-manager-web的pom.xml
5.接下來運行工程使用:tomcat7:run
右上角Edit Configurations
這里寫圖片描述
選maven
這里寫圖片描述 這里寫圖片描述
需要把taotao-parent等需要安裝的都安裝到本地倉庫。
這里寫圖片描述
最后運行,如下圖所示,就說明跑通了!
這里寫圖片描述
總結:
之前看別人的博客,有選擇portlet項,自己弄死活跑不通。
taotao-parent,taotao-manager-pojo,taotao-manager-dao,taotao-manager-service選擇quickstart那項;
taotao-common,taotao-manager啥都不選;
taotao-manager-web選擇webapp那項。
還要注意打包方式,jar,pom,war
參考資料
- https://blog.csdn.net/for_my_life/article/details/78939078
總結
以上是生活随笔為你收集整理的使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shiro教程:记住我功能
- 下一篇: 并发基础(七):Thread 类的sle