Skip to content

依赖维护 ​

非公共依赖应只在使用到的模块进行引入,多个模块公用的依赖可根据情况放到最外层pom

依赖管理统一从最外层进行

版本维护 ​

在最外层pom的 properties 中定义了各个依赖的版本信息

     <properties>
        <java.version>25</java.version>

        <project.version>3.0.0</project.version>
        <spring-cloud.version>2025.1.3</spring-cloud.version>
        <spring-cloud-alibaba.version>2025.1.0.0</spring-cloud-alibaba.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <mysql.version>26.7.0</mysql.version>
        <mybatis-plus.version>3.5.17</mybatis-plus.version>
        <jwt.version>4.6.0</jwt.version>
        <redisson.version>4.7.0</redisson.version>
        <caffeine.version>3.2.4</caffeine.version>
        <tianai-captcha.version>1.5.5</tianai-captcha.version>
        <ip2region.version>3.3.7</ip2region.version>
        <dynamic-datasource.version>4.5.0</dynamic-datasource.version>
        <fesod.version>2.0.2-incubating</fesod.version>
        <oss.version>3.18.5</oss.version>
        <spring-doc.version>3.0.3</spring-doc.version>
        <snail-job.version>2.0.2</snail-job.version>
    </properties>

Spring Boot / Spring Cloud / Spring Cloud Alibaba 三个大版本通过 dependencyManagement + BOM 导入管理:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>4.0.8</version>
        <relativePath/>
    </parent>

    <dependencyManagement>
        <dependencies>
            <!--        spring-cloud-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--        spring-cloud-alibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- lihua-base 各基础模块 与 lihua-api-system 同样在此统一管理版本 -->
        </dependencies>
    </dependencyManagement>

使用时通过 ${fesod.version} 引入

<dependency>
    <groupId>org.apache.fesod</groupId>
    <artifactId>fesod-sheet</artifactId>
    <version>${fesod.version}</version>
</dependency>

静态文件 ​

在模块 pom 的 build.resources 中可指定打入jar包的静态文件,例如 lihua-base-captcha 下有验证码图片、字体等静态资源需要在代码中使用,需要在对应模块maven中进行添加,否则不会打入jar包

<!--        指定打包后包含的文件-->
<resources>
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
            <include>**/*.yml</include>
            <include>**/*.txt</include>
            <include>META-INF/services/*</include>
            <include>META-INF/spring/*</include>
        </includes>
    </resource>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
    </resource>
</resources>

验证码模块额外维护了 captcha-images/**、captcha-font/** 两个静态资源目录,Web 模块维护了 ip2region/** IP 归属地数据文件,均需在其模块 pom 的 resources 中声明。