解决maven打包排除类不生效maven-compiler-plugin问题

 更新时间:2024年11月30日 14:25:50   作者:HetFrame  
总结:在Spring Boot项目B中作为项目A的依赖时,排除启动类不生效的原因是被其他类引用或父POM引入,解决方法是跳过test编译或注释掉@SpringBootTest(classes={BApplication.class})

问题

有个springboot项目B作为另一个项目A的依赖,在B打包的时候需要排除它的启动类。

按照百度的说法,只需要添加以下配置就可以排除掉。

<build>
        <!--打包项目包名-->
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>**/BApplication.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

但是实际打包后发现排除并不生效。

原因

1.排除的类在某个类C中import了,类C要编译就必须编译排除的类,所以要同时排除掉C。

2.parent pom引入了这个类,导致exclude不生效

解决办法

在项目B中写了单元测试,使用了注解

@SpringBootTest(classes={BApplication.class})

所以编译test的时候强行编译了启动类。

因此只需要跳过编译test或者注释掉

@SpringBootTest(classes={BApplication.class})
<properties>
		<!--跳过编译test-->
        <maven.test.skip>true</maven.test.skip>
        <!--跳过执行单元测试-->
        <skipTests>true</skipTests>
</properties>
<build>
        <!--打包项目包名-->
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <!--覆盖parent pom的配置-->
                <configuration combine.self="override">
                    <excludes>
                        <exclude>**/BApplication.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决springboot接入springfox-swagger2遇到的一些问题

    解决springboot接入springfox-swagger2遇到的一些问题

    这篇文章主要介绍了解决springboot接入springfox-swagger2遇到的一些问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • maven中pom.xml详细介绍

    maven中pom.xml详细介绍

    最近在学习maven,这篇文章主要介绍了maven中pom.xml详细介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 基于spring同名bean覆盖问题的解决

    基于spring同名bean覆盖问题的解决

    这篇文章主要介绍了spring同名bean覆盖问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java的静态类型检查示例代码详解

    Java的静态类型检查示例代码详解

    本文将使用几个代码示例,深入讲解Java中的类型检查机制。一旦完全理解了本文的例子,就完全掌握了Java中的静态类型检查,感兴趣的朋友一起看看吧
    2017-11-11
  • 聊一聊带智能提示的spring-boot-starter

    聊一聊带智能提示的spring-boot-starter

    这篇文章主要介绍了带智能提示的spring-boot-starter的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-11-11
  • mybatis-plus使用问题小结

    mybatis-plus使用问题小结

    这篇文章主要介绍了mybatis-plus使用问题汇总,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 在X分钟内学会C#的入门简明教程

    在X分钟内学会C#的入门简明教程

    C#是一个优雅的、类型安全的面向对象语言。使用C#,开发者可以在.NET框架下构建安全而强大的应用程序,阅读本文可以快速的入门C#编程语言,需要的朋友可以参考下
    2014-03-03
  • SpringBoot+Mybatis-plus+shardingsphere实现分库分表的方案

    SpringBoot+Mybatis-plus+shardingsphere实现分库分表的方案

    实现亿级数据量分库分表的项目是一个挑战性很高的任务,下面是一个基于Spring Boot的简单实现方案,感兴趣的朋友一起看看吧
    2024-03-03
  • Java编写时间工具类ZTDateTimeUtil的示例代码

    Java编写时间工具类ZTDateTimeUtil的示例代码

    这篇文章主要为大家详细介绍了如何利用Java编写时间工具类ZTDateTimeUtil,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Java Swing null绝对布局的实现示例

    Java Swing null绝对布局的实现示例

    这篇文章主要介绍了Java Swing null绝对布局的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论