今天,本打算用maven打包一个可执行的jar出来,由于以前都是用的maven-shade-plugin,所以毫无疑问的,这次也用了这个插件。但是奇怪的是,居然报错,报了一个非常奇怪的错误:
Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ManifestResourceTransformer
开始以为是自己的配置出错了,少配置了一个resource之类的,然而经过仔细的对比和尝试之后,发现并没有什么错误。这就奇怪了。
于是重建了一个项目,复制了所有的类和pom,再次尝试,居然成功了。 这可就怪异了。
于是,仔细的对比两个pom的不同,发现,出错的项目,是一个springboot项目的子模块,而springboot的父模块里面,引用了springboot 而新项目则没有。 怀疑可能是maven-shade-plugin与springboot之间有什么冲突。于是,在新项目中引入springboot的依赖,果然,同样的Cannot find 'resource'错误出现了。
于是查了一下资料,发现自己被惯性思维误导了,springboot本身就带有自己的打包插件,spring-boot-maven-plugin 这个插件就可以完成打包的工作。如果画蛇添足引用了Shade反而会导致一些冲突。
找到了原因就好办了,回去修改POM文件,顺利的打包成功