【sprinb-boot】maven 多模块项目:单独 spring-boot:run 某个模块
目录
- 前言
- 假设的 maven 多模块项目
- 模块关系1
- 模块关系2
- 模块关系3
- 模块关系4
- 示例:模块关系1
- 1,my-parent1/pom.xml 文件
- 2,my-parent1/my-app1/pom.xml 文件
- 3,执行 mvn spring-boot:run
- 示例:模块关系2
- 1,my-parent2/pom.xml 文件
- 2,my-parent2/my-app2/pom.xml 文件
- 3,执行 mvn spring-boot:run
- 示例:模块关系3
- 1,my-parent3/pom.xml 文件
- 2,my-parent3/my-app3/pom.xml 文件
- 3,执行 mvn spring-boot:run
- 示例:模块关系4
- 1,my-parent4/pom.xml 文件
- 2,my-parent4/my-app4/pom.xml 文件
- 3,执行 mvn spring-boot:run
- 参考
前言
- springboot 2.0.0.RELEASE
- maven 3.5.0
- maven 多模块项目关系
经过一段时间的验证,发现有不妥之处,再次编辑修正。
假设的 maven 多模块项目
假设多模块项目的目录结构如下:
my-parent
├─ my-domain
├─ my-service
└─ my-app
该项目可能具备以下集中关系。
模块关系1
同时具备继承关系和聚合关系。
my-parent1 <<< 无父项目
├─ my-domain
├─ my-service
└─ my-app1 <<< 父项目为 my-parent 的 Spring Boot project
模块关系2
仅具备聚合关系,不具备继承关系。
my-parent2 <<< 无父项目
├─ my-domain
├─ my-service
└─ my-app2 <<< 父项目为 spring-boot-starter-parent 的 Spring Boot project
模块关系3
同时具备继承关系和聚合关系。
my-parent3 <<< 父项目为 spring-boot-starter-parent
├─ my-domain
├─ my-service
└─ my-app3 <<< 父项目为 my-parent 的 Spring Boot project
模块关系4
仅具备聚合关系,不具备继承关系。
my-parent4 <<< 父项目为 spring-boot-starter-parent
├─ my-domain
├─ my-service
└─ my-app4 <<< 父项目为 spring-boot-starter-parent 的 Spring Boot project
该如何在my-app上执行mvn spring-boot:run
?
示例:模块关系1
1,my-parent1/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>my-parent1</artifactId><version>1.0</version><packaging>pom</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><maven-compiler-plugin.version>3.1</maven-compiler-plugin.version></properties><modules><module>my-app1</module></modules><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin></plugins></build>
</project>
2,my-parent1/my-app1/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>test</groupId><artifactId>my-parent1</artifactId><version>1.0</version></parent><artifactId>my-app1</artifactId><properties></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.0.0.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
- 与其它集中关系相比,这里多了个
dependencyManagement
。
3,执行 mvn spring-boot:run
在my-parent1目录执行如下命令:
shell> mvn spring-boot:run -pl my-app1
或者:
shell> mvn spring-boot:run -pl test:my-app1
- test 是 groupId
- my-app1 是 artifactId
示例:模块关系2
1,my-parent2/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>my-parent2</artifactId><version>1.0</version><packaging>pom</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><maven-compiler-plugin.version>3.1</maven-compiler-plugin.version></properties><modules><module>my-app2</module></modules><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin></plugins></build></project>
2,my-parent2/my-app2/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><groupId>test</groupId><artifactId>my-app2</artifactId><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies><build></build></project>
3,执行 mvn spring-boot:run
在my-parent1目录执行如下命令:
shell> mvn spring-boot:run -pl my-app2
或者:
shell> mvn spring-boot:run -pl test:my-app2
- test 是 groupId
- my-app2 是 artifactId
示例:模块关系3
1,my-parent3/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><groupId>test</groupId><artifactId>my-parent3</artifactId><version>1.0</version><packaging>pom</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><maven-compiler-plugin.version>3.1</maven-compiler-plugin.version></properties><modules><module>my-app3</module></modules><build></build></project>
2,my-parent3/my-app3/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>test</groupId><artifactId>my-parent3</artifactId><version>1.0</version></parent><artifactId>my-app3</artifactId><properties></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies><build></build></project>
3,执行 mvn spring-boot:run
在my-parent1目录执行如下命令:
shell> mvn spring-boot:run -pl my-app3
或者:
shell> mvn spring-boot:run -pl test:my-app3
- test 是 groupId
- my-app3 是 artifactId
示例:模块关系4
1,my-parent4/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><groupId>test</groupId><artifactId>my-parent4</artifactId><version>1.0</version><packaging>pom</packaging><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>my-app4</module></modules><build></build></project>
2,my-parent4/my-app4/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><groupId>test</groupId><artifactId>my-app4</artifactId><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies><build></build>
</project>
3,执行 mvn spring-boot:run
在my-parent1目录执行如下命令:
shell> mvn spring-boot:run -pl my-app4
或者:
shell> mvn spring-boot:run -pl test:my-app4
- test 是 groupId
- my-app4 是 artifactId
参考
https://stackoverflow.com/questions/41092200/run-mvn-spring-bootrun-from-parent-module
【sprinb-boot】maven 多模块项目:单独 spring-boot:run 某个模块相关推荐
- springboot毕设项目基于Spring Boot的智慧天气管理系统84z99(java+VUE+Mybatis+Maven+Mysql)
springboot毕设项目基于Spring Boot的智慧天气管理系统84z99(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8. ...
- Maven工具管理下的Spring Boot连接Oracle数据库教程
Maven工具管理下的Spring Boot连接Oracle数据库教程 一.系统环境 二.操作教程 1.明确Oracle版本 2.找到合适的jar包 3.将jar包配置到Maven本地库中 4.在Ec ...
- Maven中的profile和spring boot中的profile进行结合
2019独角兽企业重金招聘Python工程师标准>>> 有一些应用,采用了spring boot和spring boot profile.然后想把maven 中的profile和sp ...
- Spring Boot基础学习笔记02:Spring Boot项目单元测试、热部署与原理分析
文章目录 零.学习目标 1.掌握Spring Boot单元测试实现 2.掌握Spring Boot热部署实现 3.熟悉Spring Boot基本原理 一.Spring Boot单元测试 (一)Spri ...
- Spring Boot 3.0.0-M1 Reference Documentation(Spring Boot中文参考文档) 9-16
9. 数据 Spring Boot与多个数据技术集成,包括SQL和NoSQL. 9.1. SQL数据库 Spring Framework提供扩展支持用于与SQL数据工作,从使用JdbcTemplate ...
- boot入门思想 spring_什么是Spring boot?Spring Boot快速入门以及Spring Boot实例教程
转自:http://www.jianshu.com/p/d24bceea7665 简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候, ...
- Spring Boot 2.0:Docker Compose + Spring Boot + Nginx + Mysql 实践
Spring Boot 2.0:Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中最常 ...
- Spring Boot基础学习笔记17:Spring Boot默认缓存
文章目录 零.学习目标 一.缓存概述 (一)引入缓存管理的重要性 (二)Spring Boot的缓存管理 二.Spring Boot默认缓存 (一)数据准备 (二)创建Spring Boot项目 - ...
- Spring Boot基础学习笔记06:Spring Boot整合MyBatis
文章目录 零.学习目标 1.了解Spring Boot数据访问概述 2.掌握使用注解的方式整合MyBatis 3.掌握使用配置文件的方式整合MyBatis 一.Spring Boot数据访问概述 二. ...
- Spring Boot学习总结(15)——Spring Boot优缺点再总结
一.前言: 了解 Spring Boot 必须先说说 Spring 框架!在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头 ...
最新文章
- ICCV2021论文全汇总!附下载链接
- kd树的根节点_kd树总结
- kalilinux安装qt_Kali Linux安装搜狗输入法(只需5步)
- Cordova创建你的第一个App
- 基于EasyDarwin实现幼儿园监控类项目
- arraylist如何检测某一元素是否为空_我们应该如何理解Java集合框架的关键知识点?...
- [CLR团队公告]CLR基础研究团队,邀请您的加入
- [PyTorch] 安装
- 2017级C语言大作业 - 密室逃生
- Bootstrap学习之三:使用排版
- Web渗透测试实战(Metasploit5.0) 一
- Java小程序之你画我猜
- 201671030110词频统计软件项目报告
- CENTOS7开机自启动脚本
- 【方向盘】2021年JVM生态报告:Java 11使用率超Java 8
- 了解一下 Technorati 的后台数据库架构
- dcos -1.7 都有哪些服务
- 拉取 gcr.io 镜像,如 Kubernetes,istio 等
- 学生成绩管理系统(xhh)
- XAG一键并轨XRP媒体报道
热门文章
- [Flink]Flink1.3 Stream指南六 事件时间与处理时间
- 【mysql学习】疑问点记录
- ASP.NET-FineUI开发实践-9(四)
- http协议下:为什么请求与响应会做到准确误的对应。不会出现请求与响应的错乱...
- C# API强制关机、重启以及注销计算机
- DotnetSpider (二) Downloader的设置 Request自定义数据字典
- webapi 获取请求参数
- EasyUI combobox
- C# HttpWebRequest 方式提交数据,参数为普通键值对
- repeater 的解释说明 用法