springboot聚合工程打包报错Compilation failure浅析

当在SpringBoot工程中遇到打包时的Compilationfailure错误,可能是因为依赖包内包含了springboot打包插件,导致二次打包冲突。解决方法是移除spring-boot-maven-plugin插件,或者使用maven-surefire-plugin插件跳过测试直接打包。同时注意避免主模块的配置被覆盖,以确保最终jar包的可执行性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot工程涉及依赖包,直接打总包时报错Compilation failure: Compilation failure: 缺少某个包或者某个类。
原因:首先将依赖包进行打包,但是依赖包打成jar包也是不可执行的,所以不用在依赖包中放入springboot打包插件,否则会在打总包时进行二次打包导致报错。

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

解决方法:去掉springboot插件直接打包或使用如下插件或其他插件将依赖包打成jar,然后再打总包即可正常。

			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

注意主模块的application.properties文件不要被依赖包的覆盖掉,否则打成的jar包无法运行。

### 解决 Maven 安装过程中的编译失败问题 #### 清理并重新构建项目 当遇到 `maven install` 编译失败的情况时,可以尝试先清理项目的构建缓存。对于多模块项目而言,确保父级工程已经执行过 `mvn clean` 命令后再分别对各个子模块执行 `mvn install` 可能会解决问题[^2]。 ```bash mvn clean mvn install ``` #### 验证设置文件一致性 如果本地开发环境配置不当也可能引发此类错误。确认IDE内部使用的Maven settings.xml 文件同命令行下运行Maven所指向的是同一份非常重要;不一致可能导致依赖解析路径差异从而引起安装失败。调整至统一的settings.xml 路径通常能够有效缓解该类状况[^3]。 #### 处理字符编码相关异常 针对由 `MalformedInputException` 引起的具体实例,在 pom.xml 中适当位置加入如下所示插件配置片段来指定源码以及资源文件采用UTF-8作为默认编码方式往往有助于排除因非法字节序列造成的处理失误: ```xml <build> <plugins> <!-- 设置 maven-resources-plugin 的编码 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- 同样也需要为 compiler plugin 设定编码属性 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> ``` 通过上述措施应该可以在很大程度上减少由于字符集转换而导致的编译期报错情况发生[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值