今天升级了下我的maven, 从3.2.1 升级到 3.3.3
发现,我的自定义 maven 插件(feilong-training-plugin), 运行不了了, 提示
Caused by: java.lang.NoClassDefFoundError: org/slf4j/helpers/MessageFormatter
具体内容, 参见我在maven jira系统中发的issue
地址是: https://issues.apache.org/jira/browse/MNG-5845
经过一番排查, 发现, maven 3.3.3 包里面的 "META-INF/maven/extension.xml"(注:该文件 since 3.3.0)
默认 exported了 两个slf4j package, 遗漏了 org.slf4j.helpers.*
<!-- SLF4J --> <exportedPackage>org.slf4j.*</exportedPackage> <exportedPackage>org.slf4j.spi.*</exportedPackage>
因此, 可以手工修改 该文件
覆盖原文件, 重新运行 插件, 完美成功
参考:
https://github.com/jcgay/maven-color/issues/10
https://issues.apache.org/jira/browse/MNG-5845
https://issues.apache.org/jira/browse/MNG-5842