SpringBoot+Maven 多模块项目的构建、运行、打包实战

本篇文章主要介绍了SpringBoot+Maven 多模块项目的构建、运行、打包,分享给大家,具体如下:

项目使用的工具:

  1. IntelliJ IDEA
  2. JDK 1.8
  3. apache-maven-3.3.9

项目的目录:

  1. 主项目 springboot-multi
  2. 子模块 entity、dao、service、web

一、使用IDEA创建一个SpringBoot项目 : File -> new -> Project 项目名称为springboot-multi

二、删除项目中的src目录,把pom.xml中的项目打包方式改为pom,如下:

<groupId>com.example</groupId>
<artifactId>springboot-multi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 此处改为pom -->
<packaging>pom</packaging>

三、创建springboot-multi项目的子模块,在项目上右键单击,选择:new -> Module。

四、创建四个子模块后,删除子模块中 src/main/java、src/main/java下的所有文件(如果没有文件跳过此操作),只保留web子模块的SpringBoot的Application主启动类。

五、主项目pom.xml (注意<modules>标签是否指定了子模块)

<modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>springboot-multi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <!-- 此处改为pom -->
  <packaging>pom</packaging> 

  <name>springboot-multi</name>
  <description>Demo project for Spring Boot</description> 

  <modules>
    <module>web</module>
    <module>service</module>
    <module>dao</module>
    <module>entity</module>
  </modules> 

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.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>
  </properties> 

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies> 

  <!--指定使用maven打包-->
  <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> 

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
          <skipTests>true</skipTests>  <!--默认关掉单元测试 -->
        </configuration>
      </plugin>
    </plugins>
  </build>

六、web子模块pom.xml(依赖service、dao、entity子模块)

<modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>web</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging> 

  <name>web</name>
  <description>Demo project for Spring Boot</description> 

  <parent>
    <groupId>com.example</groupId>
    <artifactId>springboot-multi</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent> 

  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>service</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>dao</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>entity</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies> 

  <!--spring boot打包的话需要指定一个唯一的入门-->
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <!-- 指定该Main Class为全局的唯一入口 -->
          <mainClass>com.example.WebApplication</mainClass>
          <layout>ZIP</layout>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

七、service子模块pom.xml(依赖 dao 、entity子模块)

<modelVersion>4.0.0</modelVersion> 

  <groupId>com.example</groupId>
  <artifactId>service</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging> 

  <name>service</name>
  <description>Demo project for Spring Boot</description> 

  <parent>
    <groupId>com.example</groupId>
    <artifactId>springboot-multi</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent> 

  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>dao</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>entity</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>

八、dao子模块pom.xml (依赖entity子模块)

<modelVersion>4.0.0</modelVersion> 

<groupId>com.example</groupId>
<artifactId>dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> 

<name>dao</name>
<description>Demo project for Spring Boot</description> 

<parent>
  <groupId>com.example</groupId>
  <artifactId>springboot-multi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <relativePath>../pom.xml</relativePath>
</parent> 

<dependencies>
  <dependency>
    <groupId>com.example</groupId>
    <artifactId>entity</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </dependency>
</dependencies>

九、entity子模块

<modelVersion>4.0.0</modelVersion> 

<groupId>com.example</groupId>
<artifactId>entity</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> 

<name>entity</name>
<description>Demo project for Spring Boot</description> 

  <parent>
    <groupId>com.example</groupId>
    <artifactId>springboot-multi</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent> 

十、pom.xml文件中需要注意的就是:

  1. 主项目的modules标签指定的子模块是否正确
  2. 子模块之间的依赖
  3. 子模块的parent标签

十一、web子模块的Application启动类:

@RestController
@SpringBootApplication
public class WebApplication { 

  public static void main(String[] args) {
    SpringApplication.run(WebApplication.class, args);
  } 

  @RequestMapping(value = "/test",method = RequestMethod.GET)
  public String test(){
    return "test success";
  }
}

十二、执行main方法启动项目,访问localhost:8080/test,出现如下页面表示项目搭建成功:

十三、项目打包命令: mvn clean package 或者 使用右边工具栏的图形化界面打包也可以:

十四、打包成功日志:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 只需两步实现Eclipse+Maven快速构建第一个Spring Boot项目

    随着使用Spring进行开发的个人和企业越来越多,Spring从一个单一简介的框架变成了一个大而全的开源软件,最直观的变化就是Spring需要引入的配置也越来越多.配置繁琐,容易出错,让人无比头疼,简化Spring配置简直可以说是民心所向. Spring Boot是由Pivotal团队提供的一个基于Java的全新的开源框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.如今,Spring Boot逐渐成为快

  • springboot+maven快速构建项目的示例代码

    最近公司运用springboot构建项目,确实比ssh搭建要快很多. 1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不细说了. 2.创建一个maven项目,pom.xml文件里面写这些: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche

  • 构建SpringBoot+MyBatis+Freemarker的项目详解

    现在的Java web项目已经更多的使用SpringBoot来构建了,一个是他的配置更加简单,第二个是现在流行的为服务架构Springcloud就是基于SpringBoot来实现具体的技术细节的,MyBatis也是我们常用半自动式的持久层框架.今天小编就要带领大家一起搭建一个基于SpringBoot和MyBatis以及常用高性能页面渲染框架Freemarker来构建一个用户信息查询展示的项目. 生成项目架构文件.访问SpringBoot官网生成我们需要的Maven项目需要的文件.主要有一下几个选

  • springboot+gradle 构建多模块项目的步骤

    springboot用以进行web项目开发的便捷性,本文不再赘述,主要是想将工作中基于springboot与gradle的多模块项目的构建经验进行总结与归纳. 1.创建项目 首先安装java和gradle,本文选用的java版本为1.8.0_40,gradle版本为2.10,安装过程本文不再赘述. 其次创建项目,名称为 springboot-mm: mkdir springboot-mm cd springboot-mm gradle init 此时的项目结构如下: 接下来,创建多个模块,这里以

  • spring boot利用docker构建gradle项目的实现步骤

    前言 这是一篇关系到四个知识点的文章,分别是java,docker,springboot和gradle,我们希望在java环境下,使用springboot框架,通过gradle去构建项目,然后把项目部署和运行在docker容器里! 更多关于gradle的介绍大家可以参考这篇文章://www.jb51.net/article/125602.htm Java运行时 springboot开源脚手架 gradle最流行的项目构建工具 docker最流行的容器产品 下面话不多说了,来一起看看详细的介绍:

  • springboot学习之构建简单项目搭建步骤详解

    概述 相信对于Java开发者而言,spring和springMvc两个框架一定不陌生,这两个框架需要我们手动配置的地方非常多,各种的xml文件,properties文件,构建一个项目还是挺复杂的,在这种情况下,springboot应运而生,他能够快速的构建spring项目,而且让项目正常运行起来的配置文件非常少,甚至只需要几个注解就可以运行整个项目. 总的说来,springboot项目可以打成jar包独立运行部署,因为它内嵌servlet容器,之前spring,springMvc需要的大量依赖,

  • spring boot项目快速构建的全步骤

    1. 问题描述 springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础上,对已有的maven gav进行了封装而已,今天用最简单的代码快速入门springboot. 2. 解决方案 强烈推荐大家使用Idea的付费版(破解感谢下蓝宇),Idea对maven.git等插件支持的更加好. 使用idea自带的spring Initializr(实际调用的是springboot的官网上的initializr),快速新建springbo

  • 构建多模块的Spring Boot项目步骤全纪录

    前言 众所周知,在多个项目中可能会相同的模块,如果每个项目都去创建一遍的话,这样开发效率会很低.比如在开发一个APP应用的时候,有供APP使用的接口项目.后台管理系统,两个项目共用一套数据库,分开的话需要配置多次mybatis,如果有些表需要改动的话,则都需要改动,所以使用多模块管理这些模块的话,会非常的方便. 通过阅读本文你将了解到:如何将已有SpringBoot项目改成多模块 & 如何新构建多模块SpringBoot项目 以下示例基于我正在使用的order(订单服务)进行演示,无论你用的是什

  • SpringBoot+Maven 多模块项目的构建、运行、打包实战

    本篇文章主要介绍了SpringBoot+Maven 多模块项目的构建.运行.打包,分享给大家,具体如下: 项目使用的工具: IntelliJ IDEA JDK 1.8 apache-maven-3.3.9 项目的目录: 主项目 springboot-multi 子模块 entity.dao.service.web 一.使用IDEA创建一个SpringBoot项目 : File -> new -> Project 项目名称为springboot-multi 二.删除项目中的src目录,把pom.

  • 构建Maven多模块项目的方法

    目录 构建Maven多模块项目 创建父模块 创建子模块:model层 创建子模块:dao模块 创建子模块:service层 创建子模块:web层 编译运行项目 Maven相关特性 父模块的配置 父模块聚合子模块 父模块统一管理依赖包 子模块在pom.xml中声明父模块 参考文章 构建Maven多模块项目 JavaWeb开发一般都会进行分层开发,通常分为 model,模型层 dao,数据访问层 service,业务逻辑层 web,表现层 分层后,各层职责明确,后期维护起来也会容易一些.接下来我们就

  • springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试)

    创建之前项目之前 记得改一下 maven  提高下载Pom速度 记得 setting 中要改 maven  改成 阿里云的.具体方法 网上查第一步 搭建parents 项目,为maven项目 ,不为springboot 项目 记得修改groupId 第二步 搭建多个子模块, honor-dao   honor-manager   honor-common记得创建 honor-manager 的时候 要把他的gruopId 改成com.honor.manager 这里爆红的原因是 因为 我做到后面

  • SpringBoot创建多模块项目的全过程记录

    构建项目 我们采用IntelliJ IDEA工具来创建一个Maven项目,项目的pom.xml要添加对应SpringBoot的配置,因为Maven多模块项目内的模块并不能独立的存在,必须有一个介质来包含,项目结构如下下图所示 我们创建的Maven项目结构如上图所示,pom.xml内我们对应的添加了对SpringBoot的支持,因为我们需要使用SpringBoot来作为项目基本框架,并在pom.xml配置文件引入了Web模块的支持,所以介质项目内的Module都会用于Web依赖 我们在介质Mave

  • 利用IDEA工具修改Maven多模块项目标识包名全过程记录

    目录 一.背景 二.具备的能力 2.1 IDEA 2.2 Maven多模块项目 三.步骤 3.1 移动包 3.2 选择重构的条件 3.3 清扫战场 3.4 小心毒刺 3.4.1 redis序列化问题 3.4.2 组件扫描 四.其它 一.背景 当我们为甲方服务提供软件开发服务时,需要按照甲方的要求去修改软件的标识,对于Maven项目来说就对应着groupId,一般地写对方公司的域名,如com.example.因此,项目中使用到的原来的代码需要赋予其新的标识. 二.具备的能力 2.1 IDEA ID

  • maven多模块项目依赖管理与依赖继承详解

    目录 maven多模块项目依赖管理与依赖继承 1.指定父模块与默认继承 2.依赖管理 关于maven项目依赖继承问题 只需要在父项目中加入 并且把父项目已POM的形式 然后在子项目中以<parent>标签 maven多模块项目依赖管理与依赖继承 1.指定父模块与默认继承 dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承) 父模块的pom <?xml version="1.0" encoding="UTF-8

  • springboot实现多模块项目添加一新模块

    目录 springboot多模块项目添加一新模块 springboot添加新模块的方法 springboot项目基本结构如图 一.选择file->projectstructure文件->项目结构 二.关闭它然后在test模块上左击选复制 三.选要复制的文件 四.如果软件有bug 五.打开文件结构窗口 六.为根项目添加java文件夹 springboot多模块项目添加一新模块 选择Maven Module,填写模块名 若空白,catalog目录可选择internal 更改包名 完成后父pom下的

  • 详解IDEA下Gradle多模块(项目)的构建

    我们在新起一个项目的时候,一般都会建多个子项目(IDEA里面称之为Module模块).通过Gradle构建,多个Module之间需要将公用的配置抽取到全局,子项目中只写差异化的配置,以便于维护. 多模块项目的Gradle目录结构 示例:我的示例项目demo,我需要有一个common模块用于公用代码,一个rest模块用于提供rest接口,rest依赖common,如果用gradle构建,目录树会是这样: demo ├── build.gradle -- 全局配置 ├── settings.grad

  • 详解vue项目的构建,打包,发布全过程

    很多朋友对于VUE项目的一系列流程不熟悉,小编根据网友提出的问题,整理了关于vue项目的构建打包发布全过程,希望对你有用. 一.vue项目的创建 1.首先第一肯定是要有Node.js及npm这个不多说了 2.安装脚手架 此时可以直接浏览-但是现在肯定有很多小白想将他发布到gitHub上并可以浏览,使用vue全家桶制作自己的博客. 现在就有我来说说如何讲vue项目发布到github上 之前写过vue环境搭建 可以参考: vue环境搭建 二.vue项目的打包 1.大家都知道使用npm run bui

  • SpringBoot创建maven多模块项目实战代码

    工作中一直都是一个人奋战一人一个项目,使用maven管理,看这个也挺好,但是总感觉没有充分发挥maven的功能,于是研究了一下这个,网上关于这个的文章很多,虽然不是很好,但我从中收获了很多,在这集百家所长,写一份实战记录,大家跟着我一块做吧! 声明:构建多模块不是最难的,难点是如果把多模块打包成一个执行jar. SpringBoot官方推崇的是富jar,也就是jar文件启动项目,所以如果在这里打war包我不具体介绍,如果需要的朋友可以给我留言,我回复. 建议clone项目后,在看教程(有不足的地

随机推荐