1. 程式人生 > 其它 >springboot多模組

springboot多模組

專案的基本結構

zfanblog

其中 blog-core 是核心模組 blog-tool 是工具模組 blog-api 是前端專案 blog-admin 是後臺專案

首先父pom檔案

    <groupId>com.yf</groupId>
    <artifactId>zfanblog</artifactId>
    <version>Z-0.0.1</version>
    <name>zfanblog</name>
    <packaging>pom</packaging><!-- 注意:修改jar為pom -->
    <description>zfan.top blog</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <!--引入子模組-->
     <modules>
        <module>blog-core</module>
        <module>blog-api</module>
        <module>blog-admin-api-82</module>
    </modules>
    <!--專案依賴,子pom檔案會繼承父pom的依賴-->
    <dependencies>
        ...
    </dependencies>

** 在Springboot 多模組專案中,不要在父pom檔案和其他沒有啟動類的專案中配置 build 標籤。只在需要的子專案的pom檔案中配置(一般是web專案)**

blog-core中的pom檔案

  <!-- 過濾xml檔案-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**.*</include>
                    <include>**/*.*</include><!-- i18n能讀取到 -->
                    <include>**/*/*.*</include>
                </includes>
                <filtering>false</filtering>
            </resource>

所有的子模組中pom 父依賴改為 如下

在可以啟動的web模組的pom檔案中都打包成war包,核心模組打包成jar就可

<parent>
    <groupId>com.yf</groupId>
    <artifactId>zfanblog</artifactId>
    <version>Z-0.0.1</version>
</parent>

<plugin>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal><!--可以把依賴的包都打包到生成的Jar包中-->
            </goals>
        </execution>
    </executions>
</plugin>

 <!--在war包的pom檔案中需要移除tomcat-->
 <!-- tomcat 部署需要-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-tomcat</artifactId>
     <scope>provided</scope>
</dependency>

springboot多模組包掃描問題

需要在啟動模組的application啟動類中加入

一個為依賴的核心模組的包,一個為本模組的包 scanBasePackages屬性顯示指定要掃描的包的範圍。 @SpringBootApplication(scanBasePackages = { "com.yf.blogcore","com.yf.blogapi" })

掃描的mapper檔案 @MapperScan({"com.yf.blogcore.mapper","com.yf.blogcore.mapper.xml"})

spring boot 用 spring.profiles.active來解決多個profile的問題

spring.profiles.active=core

這個 core是核心模組中的 application-core.properties , spring.profiles.active只需application-後邊的值

core

到這裡你就可以啟動成功了...可以部署tomcat中


本文由部落格群發一文多發等運營工具平臺 OpenWrite 釋出