IDEA 创建SpringBoot多级Maven父子项目
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
文件,添加如下配置
- 将当前项目定义为
pom
项目
<packaging>pom</packaging><name>swotxu</name>
- 注册子项目,后面创建的二级子项目在父项目中注册
<modules><module>swotxu-common</module><!-- <module>swotxu-webbase</module>--></modules>
- 依赖管理 – 有两种依赖管理方式
使用<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项目,此时GroupId
和Version
自动引用父项目的
注意子项目路径
由于博主这里演示三级父子项目继承,创建完成以后,同样删除 src
目录,项目结构如下:
修改一级项目swotxu/pom.xml
文件,添加如下配置,将当前二级子项目注册到父项目
<modules><module>swotxu-common</module></modules>
修改二级项目common/pom.xml
文件,添加如下配置
- 将当前项目定义为
pom
项目
<packaging>pom</packaging><name>common</name>
- 注册子项目,后面创建的三级子项目在父项目中注册
<modules><module>swotxu-concurrency</module></modules>
- 依赖管理 – 此次使用第二种依赖管理方式
<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 root
和Module file location
,包含三个层级关系
创建完成以后,项目结构如下:
修改二级项目common/pom.xml
文件,添加如下配置,将当前三级子项目注册到父项目
<modules><module>swotxu-concurrency</module></modules>
修改三级项目concurrency/pom.xml
文件,添加如下配置
- 指定当前项目的父项目为
common
父项目
<parent><groupId>com.swotxu</groupId><artifactId>common</artifactId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath>
</parent>
- 将当前项目定义为
jar
项目
<packaging>jar</packaging><name>conurrency</name>
- 依赖管理 – 直接继承父项目依赖,子项目无需手动引用依赖
<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父子项目相关推荐
- IDEA创建springboot、maven一个项目
写在文章前边的内容 在创建项目之前需要自行安装好JDK版本.IDEA开发工具,如没有安装的请自行度娘.(在我们的项目中使用的是JDK1.8版本) 为了简化springboot.maven项目创建的过程 ...
- Eclipse创建Maven父子项目
1.项目需求 今天就介绍在Eclipse中创建Maven父子项目,举一个例子,需要建立如下关系的Maven项目. 2.构建一个父级maven项目 新建一个Maven项目,如下图所示: 选择默认工作空间 ...
- 深入理解微服务Maven父子项目构造以及项目打包部署
一.问题背景 随着微服务项目的越来越流行,更多的公司开始使用微服务来搭建自己的业务系统.微服务很好地解耦了业务,每一个服务只提供特定的功能,真正的做到了各司其职,互不干扰,同时微服务间可以互相通信,可 ...
- 黑猴子的家:Maven 父子项目
1.创建maven项目,删除src文件 2.编辑pom.xml文件,配置<packaging>pom</packaging> 3.第二层maven父子项目和第一次maven父子 ...
- 创建Maven父子项目及发布到tomat的完整过程
最近在搞一个项目,要自己创建一个maven的子项目,总结一下以后自己看: 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步 ...
- Springboot整合eureka父子项目——多模块module项目,即微服务项目
父项目 父工程也是一个POM工程,该工程中定义了所有平时常用jar包的版本和依赖管理,以及一些常用插件的管理. 到此我们可以看出springboot项目继承spring-boot-starter-pa ...
- maven -父子项目和多模块项目
1.父子项目 关键点: a.父pom中子项目1 b.子项目中父项目 主要是继承的作用,即子项目的pom中可以使用父项目中已经定义好的dependency 这里还有一个关于父子项目的展示结构问题:是父子 ...
- 搭建Maven父子项目结构
目录儿 1 创建父项目 2 创建子项目 3 额外补充 3.1 dependencyManagement标签 3.2 scope标签 3.3 spring-boot-maven-plugin打包插件 3 ...
- Idea创建SpringBoot搭建SSM框架项目,支持JSP页面
1.目录结构. 2.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns ...
最新文章
- 二叉树遍历(已知先序和中序)
- centos7 安装java和tomcat9
- 网络安全学习--WEB服务器
- 变频器按启动没反应_ABB变频器启动无反应维修那些事
- [4G5G专题-20]:架构-降低业务延时的移动边缘计算MEC-应用服务的下沉。
- Delphi 操作Excel方法大全
- b区计算机考研招不满的大学,b区考研招不满的大学 适合调剂的学校有哪些
- PhalApi 事务操作
- ubuntu查看实时网速
- python操作jira修改status及写入comment
- 使用7号电池的科学计算机,新奇:可以用USB充电的5号、7号电池
- 真正优秀的人,为何都那么尊重别人?(非常深刻)
- AWK中的OFS的问题
- 苹果手机开不了机怎么办
- 蓝桥杯评分标准_第十届蓝桥杯软件个人赛校内选拔赛评分标准和选拔标准.doc...
- linux 修改键盘键值
- 李潤慶 崇德齋 頗有逗撓
- 获取文本文件编码与导出源代码
- OC中category(分类)中添加属性
- ZYNQ Linux 添加I2C-RTC驱动