讲一下springboot多模块的构建和部署

因为今天小踩一点坑,话不多说,直接上代码,基本直接按照我的结构复制就行。


有三个子模块和一个父模块

子模块有 common   biz  和web

依赖关系为

biz依赖common    web依赖biz 和common


下面给出每个模块的具体依赖关系


父依赖

<modelVersion>4.0.0</modelVersion>  

<groupId>com.xieminghui.house</groupId>
<artifactId>house-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<modules>
   <module>house-common</module>
   <module>house-biz</module>
   <module>house-web</module>
</modules>
<packaging>pom</packaging>

<name>house</name>
<description>房产销售平台</description>

引入打包插件

<build>
   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.1</version>
         <configuration>
            <source>1.8</source>
            <target>1.8</target>
         </configuration>
      </plugin>
   </plugins>
</build>

子模块web 很关键

<modelVersion>4.0.0</modelVersion>

<artifactId>com.xieminghui.house.web</artifactId>
<packaging>jar</packaging>

<name>com.xieminghui.house.web</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <!-- junit 测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>


    <!--  如果biz 引入了 common ,那么web就只需要引入biz就可以了-->
    <dependency>
        <groupId>com.xieminghui.house</groupId>
        <artifactId>com.xieminghui.house.biz</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

引入springboot打包插件 和配置  因为最后我们要执行的是它

<!-- 打包部署
    命令行:   mvn clean package -DskipTests   //跳过打包单元测试
    启动 只要在该打包的zip jar包下面 下面执行
    cd 到web下面target可以找到打包的jar
    java -jar  xxx.jar 就可以开始运行了
    或者后台运行的话就
    nohup java -jar xxx.jar &
    -->
<build>
    <plugins>
        <!-- springboot 打包的插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 打包的类型 -->
                <mainClass>com.xieminghui.house.HouseApplication</mainClass>
                <layout>ZIP</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>


子模块biz 

<parent>
    <artifactId>house-parent</artifactId>
    <groupId>com.xieminghui.house</groupId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>com.xieminghui.house.biz</artifactId>
<packaging>jar</packaging>

<name>com.xieminghui.house.biz</name>
<url>http://maven.apache.org</url>
<dependency>
    <groupId>com.xieminghui.house</groupId>
    <artifactId>com.xieminghui.house.common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>



子模块common 
<parent>

    <artifactId>house-parent</artifactId>
    <groupId>com.xieminghui.house</groupId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>com.xieminghui.house.common</artifactId>
<packaging>jar</packaging>

<name>com.xieminghui.house.common</name>

<url>http://maven.apache.org</url>

至此依赖完成。

到路径目录下 运行

mvn clean package -DskipTests

-DskipTests是忽略单元测试,你也可以打包上去

生成结果如图

讲一下springboot多模块的构建和部署

因为我们要的结果是在web下面,所以我们cd到web下

讲一下springboot多模块的构建和部署

cd target目录

讲一下springboot多模块的构建和部署

就看到我们刚刚打成功的jar了

这时候只要电脑装了java就 可以用java -jar xx.jar 运行了

就像这样

java -jar com.xieminghui.house.web-0.0.1-SNAPSHOT.jar

如果你想运行在后台,就用下面的命令, 推荐运行在后台

nohup java -jar com.xieminghui.house.web-0.0.1-SNAPSHOT.jar &

最后项目跑成功如下图,直接访问即可

讲一下springboot多模块的构建和部署

很是辛苦,欢迎不懂的私信和评论哇。