问题
有个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>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论