0
点赞
收藏
分享

微信扫一扫

Intellij多Module项目打包 #yyds干货盘点#

项目目录结构

在这里插入图片描述

pom.xml文件

聚合工程blog_bakend中的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!-- 基本信息 -->
    <groupId>com.hc</groupId>
    <artifactId>blog</artifactId>
    <version>1.0.0.RELEASE</version>
    <name>blog</name>
    <description>博客系统</description>
    <packaging>pom</packaging>

    <!-- 声明多个子模块 -->
    <modules>
        <module>blog_api</module>
        <module>blog_common</module>
        <module>blog_controller</module>
        <module>blog_dao</module>
        <module>blog_service</module>
    </modules>

    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>

    </build>

</project>

注意:

  • 父工程必须指定&lt;packaging&gt;pom&lt;/packaging&gt;
  • 使用<dependencyManagement>包括<dependencies>标签后,父工程仅仅是用来管理依赖而不使用

在这里插入图片描述

blog_controller中的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.hc</groupId>
        <artifactId>blog</artifactId>
        <version>1.0.0.RELEASE</version>
    </parent>

    <groupId>com.hc</groupId>
    <artifactId>blog_controller</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>blog_controller</name>
    <description>Demo project for Spring Boot</description>
    <packaging>jar</packaging>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>

    </dependencies>

    <build>
        <plugins>
<!--            注意:多模块项目只需要在启动类所在的模块添加打包插件即可!不要在父类添加打包插件,因为那样会导致全部子模块都使用spring-boot-maven-plugin的方式来打包-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

注意:

  • 多模块项目只需要在启动类所在的模块添加打包插件即可!不要在父类添加打包插件,因为那样会导致全部子模块都使用spring-boot-maven-plugin的方式来打包
  • 1.0.0-SNAPSHOT中间必须使用中划线'-'
  • 各子module必须指定&lt;packaging&gt;jar&lt;/packaging&gt;

blog_dao中的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.hc</groupId>
        <artifactId>blog</artifactId>
        <version>1.0.0.RELEASE</version>
    </parent>

    <groupId>com.hc</groupId>
    <artifactId>blog_dao</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>blog_dao</name>
    <description>Demo project for Spring Boot</description>
    <packaging>jar</packaging>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>

    </dependencies>

    <build>

    </build>

</project>

说明:

  • 其它几个Module:blog_service、blog_api、blog_common中的pom.xml文件与blog_dao相似,此处省略不现赘述

打包

首先在IDE打开Maven插件,然后在聚合父工程blog中点击 clean ,然后点击 package 进行打包。如图:
在这里插入图片描述
打包效果如下:
在这里插入图片描述

最终打包地址默认在Target目录:
在这里插入图片描述

举报

相关推荐

0 条评论