执行azure-functions-maven-plugin打包时缺失org/jdom2/filter/Filter类求助
解决Azure Functions Maven插件打包时缺失
org/jdom2/filter/Filter的问题 我之前也碰到过一模一样的问题,核心原因很关键:你添加的jdom2依赖是给项目应用代码用的,但azure-functions-maven-plugin在执行package目标时,它自己的类路径里并没有包含这个依赖——插件的类加载器和项目应用的类加载器是分开的,所以即使项目依赖里有,插件运行时还是找不到目标类。
正确的解决办法是把jdom2依赖直接添加到插件自身的依赖配置里,具体步骤如下:
- 打开你的
pom.xml,找到com.microsoft.azure:azure-functions-maven-plugin的插件配置块 - 在插件配置里添加
<dependencies>节点,把jdom2的依赖声明放进去,示例代码如下:
<build> <plugins> <!-- 其他插件配置 --> <plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-functions-maven-plugin</artifactId> <version>0.1.10</version> <!-- 插件的其他配置,比如configuration等 --> <dependencies> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom2</artifactId> <version>2.0.6</version> </dependency> </dependencies> </plugin> </plugins> </build>
- 保存
pom.xml后,先执行mvn clean清理之前的构建缓存,再重新运行mvn package命令
这样配置之后,插件在运行打包流程时就能加载到jdom2的类,不会再出现缺失类的错误了。
如果还是有问题,可以检查一下:
- jdom2的版本是否正确(2.0.6是包含
org.jdom2.filter.Filter类的) - 插件版本是否是你使用的0.1.10(这个版本确实存在对jdom2的隐式依赖但未声明的问题)
内容的提问来源于stack exchange,提问作者user3245722
相关产品推荐
相关产品推荐

