当前位置: 代码网 > it编程>编程语言>Java > 解决maven打包排除类不生效maven-compiler-plugin问题

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

2024年12月01日 Java 我要评论
问题有个springboot项目b作为另一个项目a的依赖,在b打包的时候需要排除它的启动类。按照百度的说法,只需要添加以下配置就可以排除掉。<build> <!--打包

问题

有个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>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com