springboot创建maven多模块项目

醉东风      2022-04-17     218

关键词:

SpringBoot创建maven多模块项目

项目结构

 

 

该项目名称为springboot-maven-multi,由springboot-maven-multi、user-dao、user-domain、user-service、user-web个模块组成,其中springboot-maven-multi模块是其他模块的父模块。

 

第一步:新建springboot-maven-multi项目

File -> New -> Project -> Spring Initializr

 

 

如下图:输入Group、Artifact等信息,Type选择Maven Pom 

 

 

然后一直点击Next,最后Finish即可。

 

最后项目生成后结构只有一个pom.xml文件,无src目录,如下图

 

 

第二步:新建user-domain、user-dao、user-service、user-web模块

如:新建user-domain模块

File -> New -Module -> Maven

 

 

在下图的Artifact中输入 user-domain

 

 

设置模块名称和保存路径

 

点击Finish即可。 

user-dao、user-service、user-web模块新建步骤也相同,只需修改模块名称即可。

 

第三步:编写user-domain模块代码

创建User实体类

package com.lnjecit.domain;

/**
 * @author lnj
 * createTime 2018-11-03 10:06
 **/
public class User {
    private Long id;
    private String name;
    private String password;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 

第四步:编写user-dao模块代码

创建UserDao类(此处只是演示创建多模块,所以没有连接数据库),user-dao模块依赖于user-domain模块,所以需在pom.xml文件中引入user-domain依赖

package com.lnjecit.dao;

import com.lnjecit.domain.User;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * @author lnj
 * createTime 2018-11-03 9:59
 **/
@Component
public class UserDao {
    public List<User> query() {
        List<User> list = new ArrayList<>();
        User user = new User();
        user.setId(1L);
        user.setName("lnj");
        user.setPassword("123456");
        list.add(user);
        return list;
    }
}

 

第五步:编写user-service模块代码

创建UserService类,user-service模块依赖于user-dao和user-domain模块,所以需在pom.xml文件中引入user-dao和user-domain依赖

package com.lnjecit.service;

import com.lnjecit.dao.UserDao;
import com.lnjecit.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author lnj
 * createTime 2018-11-03 10:01
 **/
@Service
public class UserService {

    @Autowired
    UserDao userDao;

    public List<User> query() {
        return userDao.query();
    }

}

 

第六步:编写user-web模块代码

创建UserController类,user-web模块依赖于user-service和user-domain模块,所以需在pom.xml文件中引入user-service和user-domain依赖

package com.lnjecit.controller;

import com.lnjecit.domain.User;
import com.lnjecit.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @author lnj
 * createTime 2018-11-03 10:12
 **/
@RequestMapping("/user")
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public List<User> list() {
        return userService.query();
    }
}

 

创建UserApplication启动类

package com.lnjecit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author lnj
 * createTime 2018-11-03 10:15
 **/
@SpringBootApplication
public class UserApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
    }
}

 

第七步:修改pom.xml文件

修改最外层pom.xml文件,完整pom.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         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.lnjecit</groupId>
    <artifactId>springboot-maven-multi</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>user-web</module>
        <module>user-service</module>
        <module>user-dao</module>
        <module>user-domain</module>
    </modules>

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

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


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.RELEASE</version>
                <configuration><!-- 指定该Main Class为全局的唯一入口 -->
                    <mainClass>com.lnjecit.UserApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                        </goals>
                        <!--可以生成不含依赖包的不可执行Jar包-->
                        <!-- configuration>
                          <classifier>exec</classifier>
                        </configuration> -->
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

 

需注意的是spring-boot-maven-plugin插件版主需重写且指定为1.3.0.RELEASE,我试过指定其它版本,测试没通过,原因没找到,还有就是需指定启动类

 

第八步:启动user-web项目

运行UserApplication类,启动成功

 

第九步:打包测试

在项目更目录下,点击右键 -> Run Maven -> clean package -Dmaven.test.skip=true

 

打包成功

 

 注意一定要选择项目根目录下执行打包命令,否则会提示打包不成功。

项目地址


https://github.com/linj6/springboot-maven-multi.git

 

参考资料

https://blog.csdn.net/Message_lx/article/details/54632947

 

idea创建一个springboot多模块项目

一、创建空Maven项目二、左边选择maven,右边可以什么不选,直接next;三、填写artifactId,点击next直到finish四、finish后,idea会生成如下结果模块,删除src,并在pom文件加上packing五、创建第一个springcloud模块 六、finish后的项目... 查看详情

springboot多模块项目框架搭建

创建根项目,NewProject创建一个名为sms-bomber的SpringBoot新项目,打包为JAR的即可,这里只添加Lombok与spring-boot-starter-web依赖,这两个依赖会传递给所有子模块,删除创建完成的项目中的.mvnsrcmvnwmvnw.cmd创建启动模块,根目录项目名上... 查看详情

多模块项目的 Maven 配置

...【发布时间】:2017-09-2112:54:39【问题描述】:我正在使用SpringBoot创建一个多模块项目,该项目将有3个模块:moduleA、moduleB和moduleC。我正在关注这个教程https://spring.io/guides/gs/multi-module/#scratch在根目录中我创建了3个 查看详情

springboot+maven多模块项目(创建依赖打包可执行jar包部署测试)完整流程

转:https://blog.csdn.net/baidu_41885330/article/details/81875395 开发环境:IDEA,         SprngBoot2.0.4,        &nbs 查看详情

多 Maven 模块 Spring MVC 项目到 Spring Boot

】多Maven模块SpringMVC项目到SpringBoot【英文标题】:MultiMavenModuleSpringMVCProjecttoSpringBoot【发布时间】:2016-09-1316:26:02【问题描述】:在我发帖之前我已经做了很多研究,我想就我是否应该创建一个新的SpringBoot项目,并使用多maven结... 查看详情

spring-boot构建多模块项目

...有一个介质来包含。1.创建一个Maven项目,可以创建一个springboot项目作为基本框架,并且需要在pom.xml中引入Web的支持。2.在介质Maven项目中创建module,一般分为三个module:api/service/web& 查看详情

text创建多模块maven项目(代码片段)

查看详情

[菜鸟springcloud入门]第一章:构建多模块的maven项目+创建注册中心eureka子模块

...来一步步学习和理解SpringCloud。本系列适合有一定Java以及SpringBoot基础的同学阅读。每篇文章末尾都附有本文对应的Github源代码,方便同学调试。Github仓库地址:https://github.com/qqxx6661/springcloud_for_ 查看详情

maven搭建企业级多模块项目

1.创建一个maven项目   选择pom    完成 2.创建模块  项目右键选择module,创建模块、创建子模块       其余的打包时都为jar  地址:https://github.com/LeviFromCN/maven-demo  查看详情

springboot之ssm多模块应用

1.构建项目1.创建新项目时选择Spring  2.填写包名和项目名  3.选择如下框架  4.pom文件中使用dependencyManagement把依赖包起来<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/ 查看详情

REST API 在带有 H2 数据库的 Spring Boot Maven 多模块项目中总是抛出 404 错误

】RESTAPI在带有H2数据库的SpringBootMaven多模块项目中总是抛出404错误【英文标题】:RESTAPIisalwaysthrowing404errorinSpringbootmavenmultimoduleprojectwithH2database【发布时间】:2021-05-2413:17:18【问题描述】:我是SpringBoot的新手,我用SpringBoot创建... 查看详情

利用intellijidea创建maven多模块项目

一、项目结构 multi-module-PRoject是主工程,里面包含两个模块(Module):web-app是应用层,用于界面展示,依赖于web-service参的服务。web-service层是服务层,用于给app层提供服务。二、构建项目2.1ParentProject新建一个空白标准mavenpr... 查看详情

springboot+react前后端分离多模块项目框架搭建流程(代码片段)

背景最近两年参与的项目多是基于SpringBoot【后端】+Vue或React【前端】,说是前后端分离,实际还是全栈,只是静态资源搭上了前端的框架而已。那么就面临一个问题,既然不是纯粹的前后端分离,怎么调试... 查看详情

springboot多模块聚合工程

aggregation环境:java1.8,idea1.新建maven聚合父工程file-new-project-maven 快速创建一个maven工程,删除无关文件,只保留pom.xml pom.xml文件内容如下2.  查看详情

如何将 Spring Boot 项目集成到已经存在的多模块 Maven 项目中?

】如何将SpringBoot项目集成到已经存在的多模块Maven项目中?【英文标题】:HowtointegrateaSpringBootprojectintoanalreadyexistingmulti-moduleMavenproject?【发布时间】:2016-12-1709:26:35【问题描述】:我有一个多模块Maven项目,它有一个带有一系列... 查看详情

maven构建项目(多模块项目)

原文来自:http://blog.csdn.net/subuser/article/details/18988813。在eclipse下构建maven项目,该项目由多个子模块组成。1.创建一个父项目NEW-->project-->maven-->mavenProject,点击下一步,进入newmavenProject的Selectprojectnameandlocation界面, 查看详情

使用idea创建springboot多模块项目

参考技术A一、创建夫项目项目打开idea---》newproject点击next进入下一步点击next选择项目目录,点击完成以下为创建好的项目二、创建module在swagger项目中修改pom文件以下为新创建好的项目启动swagger项目,可以启动成功三、修改pom... 查看详情

springboot+maven+nacos搭建微服务应用

1、创建微服务应用理解:和创建多模块应用一样,只不过此处的各种方法不再是通过“类库”进行调用,而是通过服务(controller或service)(1)按上图创建多模块项目(这块还没有深入理解,... 查看详情