Spring Boot 多模块项目创建与配置[转]

一.父模块创建

1.创建一个spring boot项目  名称为demo

2.在上面创建好的工程名demo上,点击右键,选择New–>Module,进入New Module页面   name为dubbo-server

3,再创建另一个Module,name为dubbo-client

4.删除无用的文件及文件夹,包括三个模块的mvnw、mvnw.cmd文件及.mvn文件夹,src目录,父模块只做依赖管理

5.配置父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.sun</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!--<packaging>jar</packaging>-->
    <packaging>pom</packaging>  <!--父模块打包类型必须为pom-->

    <modules>
        <module>dubbo-server</module>
        <module>dubbo-client</module>
    </modules>

    <name>demo</name>
    <description>Practice the learned code</description>

    <!-- parent指明继承关系,给出被继承的父项目的具体信息-->
    <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中统一控制依赖包的版本,更清晰-->
        <dubbo.version>2.5.3</dubbo.version>
        <zkclient.version>0.10</zkclient.version>
    </properties>

    <dependencyManagement>   <!--dependencyManagement用于管理依赖版本号-->
        <dependencies>
            <!-- 删除spring-boot-starter和spring-boot-starter-test,
            因为parent中继承的祖先中已经有了,并且一般dependencyManagement管理的依赖都要写版本号 -->
            <!--<dependency>-->
                <!--<groupId>org.springframework.boot</groupId>-->
                <!--<artifactId>spring-boot-starter</artifactId>-->
            <!--</dependency>-->

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

            <!--新增后续dubbo项目中所需依赖,dubbo、zk-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <!--<version>2.5.3</version>-->    <!--使用properties中配置的版本号-->
                <version>${dubbo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <!--<version>0.10</version>-->    <!--使用properties中配置的版本号-->
                <version>${zkclient.version}</version>
            </dependency>
        </dependencies>

    </dependencyManagement>

    <!--该插件作用是打一个可运行的包,必须要写在需要打包的项目里。这里的父模块不需要打包运行,所以删掉该插件。-->
    <!--<build>-->
        <!--<plugins>-->
            <!--<plugin>-->
                <!--<groupId>org.springframework.boot</groupId>-->
                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
            <!--</plugin>-->
        <!--</plugins>-->
    <!--</build>-->

</project>

6.dubbo-server\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.sun</groupId>
   <artifactId>dubbo-server</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>dubbo-server</name>
   <description>Demo project for Spring Boot</description>

   <!-- 子模块的parent要使用顶层的父模块-->
   <parent>
      <!--<groupId>org.springframework.boot</groupId>-->
      <!--<artifactId>spring-boot-starter-parent</artifactId>-->
      <!--<version>1.5.8.RELEASE</version>-->
      <!--<relativePath/>-->
      <groupId>com.sun</groupId>
      <artifactId>demo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
   </parent>

   <!-- properties可删掉,会继承父模块的-->
   <!--<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>

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

      <!--新增后续dubbo项目中所需依赖,dubbo、zk。
         父模块pom中使用dependencyManagement来管理依赖版本号,子模块pom中不需要再写版本号,exclusion也不需要-->
      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>dubbo</artifactId>
         <!--<version>2.5.3</version>-->
         <!--<exclusions>-->
            <!--<exclusion>-->
               <!--<groupId>org.springframework</groupId>-->
               <!--<artifactId>spring</artifactId>-->
            <!--</exclusion>-->
         <!--</exclusions>-->
      </dependency>

      <dependency>
         <groupId>com.101tec</groupId>
         <artifactId>zkclient</artifactId>
         <!--<version>0.10</version>-->
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

</project>

7.dubbo-client/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.sun</groupId>
   <artifactId>dubbo-client</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>dubbo-client</name>
   <description>Demo project for Spring Boot</description>

   <!-- 子模块的parent要使用顶层的父模块-->
   <parent>
      <!--<groupId>org.springframework.boot</groupId>-->
      <!--<artifactId>spring-boot-starter-parent</artifactId>-->
      <!--<version>1.5.8.RELEASE</version>-->
      <!--<relativePath/>-->
      <groupId>com.sun</groupId>
      <artifactId>demo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
   </parent>

   <!-- properties可删掉,会继承父模块的-->
   <!--<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>

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

      <!-- 该模块需要启动web服务,需要该依赖-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <!--新增后续dubbo项目中所需依赖,dubbo、zk
         父模块pom中使用dependencyManagement来管理依赖版本号,子模块pom中不需要再写版本号
         父模块pom中里有exclusion,子模块pom中不要写exclusion-->
      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>dubbo</artifactId>
         <!--<version>2.5.3</version>-->
         <!--<exclusions>-->
            <!--<exclusion>-->
               <!--<groupId>org.springframework</groupId>-->
               <!--<artifactId>spring</artifactId>-->
            <!--</exclusion>-->
         <!--</exclusions>-->
      </dependency>

      <dependency>
         <groupId>com.101tec</groupId>
         <artifactId>zkclient</artifactId>
         <!--<version>0.10</version>-->
      </dependency>

      <!--client模块需要依赖server模块-->
      <dependency>
         <groupId>com.sun</groupId>
         <artifactId>    dubbo-server</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

</project>

点击IDEA右侧的Maven Projects,在每个模块的Dependencies中即可查看每个dependency内部的依赖及版本号

原文地址:https://www.cnblogs.com/sunkang-work/p/12001374.html

时间: 2024-10-10 14:17:28

Spring Boot 多模块项目创建与配置[转]的相关文章

Spring Boot 多模块项目创建与配置 (一) (转)

最近在负责的是一个比较复杂项目,模块很多,代码中的二级模块就有9个,部分二级模块下面还分了多个模块.代码中的多模块是用maven管理的,每个模块都使用spring boot框架.之前有零零散散学过一些maven多模块配置的知识,但没自己从头到尾创建和配置过,也快忘得差不多了.这次正好对照着这个项目,动手实践一下,下面我们就开始吧. maven多模块项目通常由一个父模块和若干个子模块构成,每个模块都对应着一个pom.xml.它们之间通过继承和聚合(也称作多模块)相互关联.多模块适用于一些比较大的项

Maven 搭建spring boot多模块项目

Maven 搭建spring boot多模块项目 备注:所有项目都在idea中创建 1.idea创建maven项目 1-1: 删除src,target目录,只保留pom.xml 1-2: 根目录pom.xml可被子模块继承,因此项目只是demo,未考虑太多性能问题,所以将诸多依赖 都写在根级`pom.xml`,子模块只需继承就可以使用. 1-3: 根级pom.xml文件在附录1 1-4: 依赖模块 mybatis spring-boot相关模块 2.创建子模块(module) 2-1: file

Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版

Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版 百度很多博客都不详细,弄了半天才把 Spring Boot 多模块项目构建开发整的差不多,特地重新创建配置,记录一下,也分享给有需要的人 本篇也会非常详细的介绍涉及的基础知识点,更多都写在注释上了 先放成功截图: (1)项目结构: (2)启动: (3)测试主子模块: (4)测试子模块依赖: 第一步:创建父模块,子模块 (1)打开创建项目窗口,点击 Create New Project (2)填写 (3)填写

从零一起学Spring Boot之LayIM项目长成记(一) 初见 Spring Boot

项目背景 之前写过LayIM的.NET版后端实现,后来又写过一版Java的.当时用的是servlet,websocket和jdbc.虽然时间过去很久了,但是仍有些同学在关注.偶然间我听说了SpringBoot这么个东东,据说是省去了很多繁杂的配置.可以傻瓜式的创建项目,轻轻松松做出一个网站来,那么出于我对LayIM的情有独钟,于是乎想借用它来帮助我学习SpringBoot,并且全程记录,省的以后再走弯路和掌握解决问题的方法.(当然,我也是新手,我的解决方法就是百度,stackovreflow等网

【Spring Boot】利用 Spring Boot Admin 进行项目监控管理

利用 Spring Boot Admin 进行项目监控管理 一.Spring Boot Admin 是什么 Spring Boot Admin (SBA) 是一个社区开源项目,用于管理和监视 Spring Boot 应用程序.应用程序通过 http 的方式注册到 Spring Boot 管理客户端,或者通过 Spring Cloud 的服务发现机制,然后针对 actuator 接口将数据通过 Vue.js 进行可视化管理. 对于我们来说,我们可以通过 Spring Boot Admin 浏览所有

快速构建一个Spring Boot+MyBatis的项目IDEA(附源码下载)

如何快速构建一个Spring Boot的项目 工具 idea JDK版本 1.8 Spring Boot 版本 1.5.9 环境搭建实现:最基础前端可以访问到数据库内的内容 开始 IDEA 内部新建一个项目,项目类型选择Spring Initializr,Project SDK选择适合你当前环境的版本,这里我选择的是1.8(Spring Boot 2.0以上的版本,JDK选择请选择1.8即以上版本),构建服务选择默认就好,点击Next 填写Group和Artifact(此处我使用的是默认,请根据

从零一起学Spring Boot之LayIM项目长成记(五)websocket

前言 距离上一篇已经比较久的时间了,项目也是开了个头.并且,由于网上的关于Spring Boot的websocket讲解也比较多.于是我采用了另外的一个通讯框架 t-io 来实现LayIM中的通讯功能.本篇会着重介绍我在研究与开发过程中踩过的坑和比较花费的时间的部分. WebSocket 在研究 t-io 的时候,我已经写过关于t-io框架的一些简单例子分析以及框架中关于 websocket 中的编解码代码分析等,有兴趣的同学可以先看一下.因为 在LayIM项目中我会是用到 Showcase D

spring boot+mybatis+quartz项目的搭建完整版

1. 利用spring boot提供的工具(http://start.spring.io/)自动生成一个标准的spring boot项目架构 2. 因为这里我们是搭建spring boot+mybatis+quartz架构,故在pom.xml文件中配置相关依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo

Spring Boot 使用IntelliJ IDEA创建一个web开发实例(一)

.新建项目File-->New-->Project-->Spring Initializr 点击Finish,一个Spring Boot web应用就创建好了. 原文地址:https://www.cnblogs.com/zsg88/p/9161685.html