了解多模块项目中的 Spring Boot Maven 插件

Posted

技术标签:

【中文标题】了解多模块项目中的 Spring Boot Maven 插件【英文标题】:understanding Spring Boot Maven Plugin in Multi-Module projects 【发布时间】:2019-01-30 19:38:42 【问题描述】:

我正在学习 Spring Boot 多模块项目,并尝试了解 Spring Boot maven 插件到底是什么。

例如,我有 2 个不同的项目。在第一个项目中,我在 web 模块中有 spring boot maven 插件:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>2.0.4.RELEASE</version>
      <configuration>
        <mainClass>dgs.web.DemoApplication</mainClass>
        <layout>ZIP</layout>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>repackage</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

在第二个项目中,我在数据模块中有这个插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         <executions>
             <execution>
                 <goals>
                     <goal>repackage</goal>
                 </goals>
                 <configuration>
                     <skip>true</skip>
                 </configuration>
             </execution>
         </executions>
        </plugin>
    </plugins>
</build>

这是在第二个项目的父 pom 中:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

有人能解释一下这个spring boot maven插件在第二个项目中的作用吗?以及为什么没有关于 mainClass 的参考。我只在第一个项目中看到这个 mainClass 标记。

【问题讨论】:

对于确切的代码示例,还应该给出父声明,因为通常使用 Spring Boot 父,它为 spring-boot-maven-plugin 定义了很多默认值。再次查看给出的文档。 【参考方案1】:

maven 插件用于通过 Maven 打包和执行。

您应该阅读文档:

https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html

https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/maven-plugin/

【讨论】:

以上是关于了解多模块项目中的 Spring Boot Maven 插件的主要内容,如果未能解决你的问题,请参考以下文章

Thymeleaf 无法解析多模块 Spring Boot 项目中的模板

是否可以从 Maven 多模块项目的父模块中的配置文件夹加载 Spring-Boot 属性?

Spring Boot 多模块项目创建与配置 (转)

多模块项目的 Spring Boot 组件扫描问题

在多模块 Spring Boot 项目中使用属性

spring boot多模块项目的自动化部署