springboot创建多module项目的实例
作者:juny0302 发布时间:2021-09-09 20:13:20
标签:springboot,创建,module
使用springboot创建多module项目,以前也做过多次,一段时间不用又忘了,在这里做个记录
项目名称 | 作用 | 说明 |
---|---|---|
demo-root | 根项目 | 父项目,只用来管理其他module,提供基础的pom配置 |
demo-api | 启动项目 | api项目,启动类放在此项目中 |
demo-common | 通用工具 | 只放一些通用代码、工具类等 |
项目名称作用说明demo-root根项目父项目,只用来管理其他module,提供基础的pom配置demo-api启动项目api项目,启动类放在此项目中demo-common通用工具只放一些通用代码、工具类等
创建项目
创建demo-parent
创建过程一路next即可
项目建好后,删掉src目录,因为不需要在根项目中写代码
创建demo-api
创建过程跟root项目基本一致,所不同的是,需要右键点击根项目,然后在弹出菜单中选择new–> module
以后的过程跟root项目一样,略…
创建demo-common
过程跟demo-api一样,略…
修改各个项目的pom文件
创建过程很简单,这一步才是重点
修改demo-root的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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo-root</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo-root</name>
<description>Demo project for Spring Boot</description>
<!-- 配置打包类型,不写默认是jar,一般来说所有的父级项目的packaging都为pom -->
<packaging>pom</packaging>
<!-- 添加管理的包 -->
<modules>
<module>demo-api</module>
<module>demo-common</module>
</modules>
<properties>
<!-- 设置项目编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- maven 插件版本 -->
<maven.compiler.plugin.version>3.1</maven.compiler.plugin.version>
<java.version>1.8</java.version>
</properties>
<!-- 根据自己的需要添加依赖包,注意:root中添加的依赖包会继承到root所管理的所有module中 -->
<dependencies>
<!-- SpringBoot 核心包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- SpringBoot Web容器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringBoot * -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 -->
</dependency>
<!-- spring security 安全认证 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- SpringBoot 测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
<!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </build>-->
<!-- 重点: spring-boot-maven-plugin能够将Spring Boot应用打包为可执行的jar或war文件,root不需要,所以改成maven打包-->
<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>
</configuration>
</plugin>
</plugins>
</build>
</project>
修改demo-api的pom.xml
注意我们没有指定打包类型,所以默认打成jar包
<?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改成我们自己的root -->
<!-- <parent>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-parent</artifactId>-->
<!-- <version>2.3.1.RELEASE</version>-->
<!-- <relativePath/> <!– lookup parent from repository –>-->
<!-- </parent>-->
<parent>
<groupId>com.example</groupId>
<artifactId>demo-root</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<!-- 可以继承root -->
<!-- <groupId>com.example</groupId>-->
<artifactId>demo-api</artifactId>
<!-- 可以继承root -->
<!-- <version>0.0.1-SNAPSHOT</version>-->
<name>demo-api</name>
<description>Demo project for Spring Boot</description>
<!-- 可以继承root -->
<!-- <properties>-->
<!-- <java.version>1.8</java.version>-->
<!-- </properties>-->
<dependencies>
<!-- 添加自己的依赖包 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>demo-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<!-- 重点 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 当所依赖的其他模块,有启动类的时候,需要以下配置,指定唯一启动类-->
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.example.demoapi.DemoApiApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
修改demo-common的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>
<!-- 跟demo-api一样,干掉原来的,使用我们自己的 -->
<!-- <parent>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-parent</artifactId>-->
<!-- <version>2.3.1.RELEASE</version>-->
<!-- <relativePath/> <!– lookup parent from repository –>-->
<!-- </parent>-->
<parent>
<groupId>com.example</groupId>
<artifactId>demo-root</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>demo-common</artifactId>
<name>demo-common</name>
<description>Demo project for Spring Boot</description>
<properties>
<!-- 添加自己的 -->
<mybatis-plus.version>3.3.1</mybatis-plus.version>
</properties>
<dependencies>
<!-- 添加自己的 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
</dependencies>
<!-- 重点:删掉原来的,原因还是不需要可运行 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
至此所有配置都已经完成,可以打包试试
[INFO] Reactor Summary:
[INFO]
[INFO] demo-root .......................................... SUCCESS [ 0.001 s]
[INFO] demo-common ........................................ SUCCESS [ 1.599 s]
[INFO] demo-api ........................................... SUCCESS [ 0.711 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.705 s
[INFO] Finished at: 2020-06-13T09:58:53+08:00
[INFO] Final Memory: 47M/334M
[INFO] ------------------------------------------------------------------------
来源:https://blog.csdn.net/juny0302/article/details/106727855


猜你喜欢
- 在过去十年中最流行的移动应用开发开发平台中,我们认为,Android平台是一个新开发的最方便的平台。一个廉价的工具,友好的开发者社区,众所周
- 实现需求:1.用户未登录,跳转到登录页,登录完成后会跳到初始访问页。2.用户自定义处理(如需要激活),跳转到激活页面,激活完成后会跳到初始访
- 有个网站需要生成静态页。据以往经验,凡比较烂的空间,短时间内运行耗能大的运算,都会出现“service unavailable”,以致网页无
- collection标签的oftype属性能否为java.util.Map基于mybatis-3.4.5.jar版本,结论是可以的。<
- KMP算法是一种神奇的字符串匹配算法,在对 超长字符串 进行模板匹配的时候比暴力匹配法的效率会高不少。接下来我们从思路入手理解KMP算法。在
- 这篇文章主要介绍了如何使用Jenkins编译并打包SpringCloud微服务目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有
- 我们在使用SpringData JPA框架时,进行条件查询,如果是固定条件的查询,我们可以使用符合框架规则的自定义方法以及@Query注解实
- 本文介绍了详解Maven * Nexus的安装与使用,分享给大家,具体如下:1.安装1.1 安装docker并加速yum update &am
- 修改方法有两个1.方法1:点“编辑”-->“列选择模式”2.方法2:快捷键Shift+Alt+Insert修改后结果如下:来源:htt
- import java.awt.*; import java.util.*; import javax.swing.*; public cl
- 这几天做项目,有些地方的图片需要用到圆形图片,所以百度了一下,在github上找到一个开源项目,处理很简单,效果如下: 使用起来特
- 在使用foreach时,collection属性值的三种情况:如果传入的参数类型为List时,collection的默认属性值为list,同
- 快速排序过程没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”!光听这个名字是不是就觉得很高端呢。假设我们现在对“52 39 67
- Java Spring Controller 获取请求参数的几种方法 1、直接把表单的参数写在Controller相应的方法的形参
- pom配置<?xml version="1.0" encoding="UTF-8"?>&
- 一、Rxjava使用场景为了模拟实际场景,从wanandroid网站找了二个接口,如下:(对Wanandroid表示感谢!)public i
- 相应的类库可在我的资源页面中找到,关于类成员的说明可通过对象浏览器查看函数说明Imports BitOperatorLibrary.Shif
- 本文实例讲述了Android控件之Gallery用法。分享给大家供大家参考。具体如下:Gallery组件主要用于横向显示图像列表,不过按常规
- 前言最近有项目需要开发档案打包下载功能,其中包含很多大附件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共
- 前言使用Java8的新特性Stream流式处理,可以提高对于集合的一些操作效率,再配合lambda表达式,可以极致的简化代码,尤其还有并行流