以开源项目 SmartAdmin 的框架源码中的部分代码举例说明

1. 父模块

  1. 删除其他文件,只保留 pom.xml 文件

  2. 打包方式 <packaging>pom</packaging>

  3. modules 引入子模块 (打包引入的子模块

  4. properties 统一管理依赖版本

<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>net.1024lab</groupId>
    <artifactId>sa-parent</artifactId>
    <version>3.0.0</version>

 	<!-- 父模块打包类型必须为pom -->
    <packaging>pom</packaging>

    <name>sa-parent</name>
    <description>SmartAdmin project</description>

	<!-- 模块说明:这里声明多个子模块 -->
	<modules>
        <module>sa-base</module>
		<module>sa-admin</module>
    </modules>

	<!-- 版本说明:这里统一管理依赖的版本号 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <springboot.version>2.7.5</springboot.version>
    </properties>

    <dependencyManagement>
        <dependencies>

            <!--BOM begin-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${springboot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--BOM end-->

        </dependencies>

    </dependencyManagement>


</project>

2. 子模块

  1. parent 引用父模块(继承依赖

  2. 模块个性化依赖,在本模块pom中引用

  3. 打包方式 <packaging>jar</packaging>

<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>
    
	<!-- 继承本项目的父工程 -->
	<parent>
        <groupId>net.1024lab</groupId>
        <artifactId>sa-parent</artifactId>
        <version>3.0.0</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>sa-admin</artifactId>
    <version>3.0.0</version>
    <packaging>jar</packaging>

    <name>sa-admin</name>
    <description>sa-admin project</description>

	<!-- 子模块的个性化引用 -->
    <dependencies>

        <dependency>
            <groupId>net.1024lab</groupId>
            <artifactId>sa-base</artifactId>
            <version>3.0.0</version>
        </dependency>

    </dependencies>


</project>