IDEA 创建SpringBoot多级MAVEN父子项目

  • 一、环境准备
    • 1、JDK安装配置
    • 2、MAVEN安装配置
  • 二、项目搭建
    • 1、创建顶级Maven项目
      • 附: 一级项目完整`pom.xml`配置
    • 2、创建二级Maven子项目
      • 附: 二级子项目完整`pom.xml`配置
    • 3、创建三级Springboot子项目
      • 附: 三级子项目完整`pom.xml`配置

一、环境准备

开发环境准备(博主这里使用JDK8、MAVEN3.5.3、IDEA2017x64)。

1、JDK安装配置

参考我的另外一篇博客:
链接: JDK安装配置-swotXu.

2、MAVEN安装配置

参考我的另外一篇博客:
链接: MAVEN安装配置-swotXu.

二、项目搭建

本次演示,博主创建三层MAVEN父子项目。
一级:mavne项目 swotxu
二级:maven项目 common/webbase
三级:springboot项目 concurrency/webdemo
若创建两级父子项目,则父项目为maven项目,子项目为springboot项目

1、创建顶级Maven项目

FIle -> new -> project,选Maven,创建maven项目。

这里注意Projiect location,指向当前项目存放路径

创建完成以后,删除 src目录

修改pom.xml文件,添加如下配置

  1. 将当前项目定义为pom项目
    <packaging>pom</packaging><name>swotxu</name>
  1. 注册子项目,后面创建的二级子项目在父项目中注册
    <modules><module>swotxu-common</module><!-- <module>swotxu-webbase</module>--></modules>
  1. 依赖管理 – 有两种依赖管理方式
    使用<dependencyManagement>进行依赖管理
    父项目相当于一个依赖发布工厂,父项目统一管理依赖版本。
    子项目需要的依赖,需在子项目中手动指定引入,无需指定依赖版本,无法继承父项目依赖直接使用
    一级父项目使用此方式
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${springboot.version}</version></dependency></dependencies>
</dependencyManagement>

使用<dependencies>进行依赖管理
子项目无需手动指定依赖引入,会自动继承父依赖直接使用。
二级子项目使用此方式

 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${springboot.version}</version></dependency></dependencies>

附: 一级项目完整pom.xml配置

<?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>com.swotxu</groupId><artifactId>swotxu</artifactId><version>1.0-SNAPSHOT</version><!-- 将当前项目定义为pom --><packaging>pom</packaging><name>swotxu</name><!--指定当前项目继承spring-boot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--项目中依赖版本统一管理--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><springboot.version>2.2.1.RELEASE</springboot.version><mybatis.version>2.1.1</mybatis.version><lombok.version>1.18.10</lombok.version><junit.version>4.12</junit.version></properties><!--注册子项目 后面创建二级子项目后,需在父项目中注册--><modules><!--<module>swotxu-common</module>--><!--<module>swotxu-webbase</module>--></modules><!--父项目引用依赖注:父项目依赖引用有两种方式1、使用此方式进行依赖管理时,父项目相当于一个依赖发布工厂。子项目需要哪些依赖,需要手动指定引入,无法继承父项目依赖直接使用<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${springboot.version}</version></dependency></dependencies></dependencyManagement>2、使用此方式经行依赖管理时,子项目无需手动指定依赖引入,会自动继承父依赖直接使用。<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${springboot.version}</version></dependency></dependencies>--><dependencyManagement><dependencies><!-- web组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${springboot.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>${springboot.version}</version><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies></dependencyManagement><build><plugins><!-- 资源文件拷贝插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><encoding>UTF-8</encoding></configuration></plugin><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

2、创建二级Maven子项目

FIle -> new -> Module,选Maven,创建maven项目。

由于继承父maven项目,此时GroupIdVersion自动引用父项目的

注意子项目路径

由于博主这里演示三级父子项目继承,创建完成以后,同样删除 src 目录,项目结构如下:

修改一级项目swotxu/pom.xml文件,添加如下配置,将当前二级子项目注册到父项目

    <modules><module>swotxu-common</module></modules>

修改二级项目common/pom.xml文件,添加如下配置

  1. 将当前项目定义为pom项目
    <packaging>pom</packaging><name>common</name>
  1. 注册子项目,后面创建的三级子项目在父项目中注册
    <modules><module>swotxu-concurrency</module></modules>
  1. 依赖管理 – 此次使用第二种依赖管理方式
<dependencies><!-- web组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

附: 二级子项目完整pom.xml配置

<?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"><parent><artifactId>swotxu</artifactId><groupId>com.swotxu</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>common</artifactId><packaging>pom</packaging><name>common</name><description>Common template</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><modules><!--<module>swotxu-concurrency</module>--><!--<module>swotxu-algorithm</module>--></modules><dependencies><!-- web组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><!--将这段放开,并指定入口,则打jar包,如果注释这一段,并在子项目web中将<packaging>jar</packaging>改成war,则打成war包--><build><plugins><plugin><!-- The plugin rewrites your manifest --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><!--可以把依赖的包都打包到生成的Jar包中--><goal>repackage</goal></goals><!--可以生成不含依赖包的不可执行Jar包--><!-- configuration><classifier>exec</classifier></configuration> --></execution></executions></plugin></plugins></build>
</project>

3、创建三级Springboot子项目

FIle -> new -> Module,选String Initializr,创建springboot项目。


这里注意Content rootModule file location,包含三个层级关系

创建完成以后,项目结构如下:

修改二级项目common/pom.xml文件,添加如下配置,将当前三级子项目注册到父项目

    <modules><module>swotxu-concurrency</module></modules>

修改三级项目concurrency/pom.xml文件,添加如下配置

  1. 指定当前项目的父项目为common父项目
<parent><groupId>com.swotxu</groupId><artifactId>common</artifactId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath>
</parent>
  1. 将当前项目定义为jar项目
    <packaging>jar</packaging><name>conurrency</name>
  1. 依赖管理 – 直接继承父项目依赖,子项目无需手动引用依赖
<dependencies>
</dependencies>

附: 三级子项目完整pom.xml配置

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.swotxu</groupId><artifactId>common</artifactId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent><groupId>com.swotxu</groupId><artifactId>concurrency</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>conurrency</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies></dependencies><!--让多模块化拆分之后还能打成完整的可执行jar包--><build><finalName>concurrency-demo</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.swotxu.concurrency.ConcurrencyApplication</mainClass></configuration></plugin></plugins></build>
</project>

以上,三级父子项目基本搭建完成!
这里贴另一个项目的结构图供参考:


至此,多级Maven父子项目就创建完成了。
大家如果有什么疑问,欢迎评论留言!别忘了收藏关注~

IDEA 创建SpringBoot多级Maven父子项目相关推荐

  1. IDEA创建springboot、maven一个项目

    写在文章前边的内容 在创建项目之前需要自行安装好JDK版本.IDEA开发工具,如没有安装的请自行度娘.(在我们的项目中使用的是JDK1.8版本) 为了简化springboot.maven项目创建的过程 ...

  2. Eclipse创建Maven父子项目

    1.项目需求 今天就介绍在Eclipse中创建Maven父子项目,举一个例子,需要建立如下关系的Maven项目. 2.构建一个父级maven项目 新建一个Maven项目,如下图所示: 选择默认工作空间 ...

  3. 深入理解微服务Maven父子项目构造以及项目打包部署

    一.问题背景 随着微服务项目的越来越流行,更多的公司开始使用微服务来搭建自己的业务系统.微服务很好地解耦了业务,每一个服务只提供特定的功能,真正的做到了各司其职,互不干扰,同时微服务间可以互相通信,可 ...

  4. 黑猴子的家:Maven 父子项目

    1.创建maven项目,删除src文件 2.编辑pom.xml文件,配置<packaging>pom</packaging> 3.第二层maven父子项目和第一次maven父子 ...

  5. 创建Maven父子项目及发布到tomat的完整过程

    最近在搞一个项目,要自己创建一个maven的子项目,总结一下以后自己看: 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步 ...

  6. Springboot整合eureka父子项目——多模块module项目,即微服务项目

    父项目 父工程也是一个POM工程,该工程中定义了所有平时常用jar包的版本和依赖管理,以及一些常用插件的管理. 到此我们可以看出springboot项目继承spring-boot-starter-pa ...

  7. maven -父子项目和多模块项目

    1.父子项目 关键点: a.父pom中子项目1 b.子项目中父项目 主要是继承的作用,即子项目的pom中可以使用父项目中已经定义好的dependency 这里还有一个关于父子项目的展示结构问题:是父子 ...

  8. 搭建Maven父子项目结构

    目录儿 1 创建父项目 2 创建子项目 3 额外补充 3.1 dependencyManagement标签 3.2 scope标签 3.3 spring-boot-maven-plugin打包插件 3 ...

  9. Idea创建SpringBoot搭建SSM框架项目,支持JSP页面

    1.目录结构. 2.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns ...

最新文章

  1. 二叉树遍历(已知先序和中序)
  2. centos7 安装java和tomcat9
  3. 网络安全学习--WEB服务器
  4. 变频器按启动没反应_ABB变频器启动无反应维修那些事
  5. [4G5G专题-20]:架构-降低业务延时的移动边缘计算MEC-应用服务的下沉。
  6. Delphi 操作Excel方法大全
  7. b区计算机考研招不满的大学,b区考研招不满的大学 适合调剂的学校有哪些
  8. PhalApi 事务操作
  9. ubuntu查看实时网速
  10. python操作jira修改status及写入comment
  11. 使用7号电池的科学计算机,新奇:可以用USB充电的5号、7号电池
  12. 真正优秀的人,为何都那么尊重别人?(非常深刻)
  13. AWK中的OFS的问题
  14. 苹果手机开不了机怎么办
  15. 蓝桥杯评分标准_第十届蓝桥杯软件个人赛校内选拔赛评分标准和选拔标准.doc...
  16. linux 修改键盘键值
  17. 李潤慶 崇德齋 頗有逗撓
  18. 获取文本文件编码与导出源代码
  19. OC中category(分类)中添加属性
  20. ZYNQ Linux 添加I2C-RTC驱动

热门文章

  1. android谷歌dns设置在哪,android系统上DNS的调试
  2. asterisk 配置CDR(dall detail record)
  3. 百度最新面试题:祖玛游戏思路详解
  4. linux下nginx防止cc攻击
  5. 视频教程-CCNP 思科认证网络工程师(美女讲师版)-思科认证
  6. 农村生活污水处理技术两大分类详解
  7. 【光环国际】提升领导者魅力与气质有绝招
  8. 内存管理:内存的分配与回收
  9. java封装 继承 多态_Java 封装、继承、多态
  10. 搜索巨头转身:Google向左、百度向右