Apache NiFi自定义处理器构建报错:非NiFi依赖禁用SNAPSHOT版本
解决NiFi自定义处理器NAR包构建SNAPSHOT版本报错问题
核心原因
NiFi的NAR构建插件默认禁止非Apache NiFi生态的组件(包括你的自定义处理器模块)使用SNAPSHOT版本,这是为了保证构建产物的稳定性和可追溯性。
具体解决步骤
修改自定义处理器模块版本
打开处理器模块的pom.xml,将<version>1.0-SNAPSHOT</version>替换为正式版本号,比如:<version>1.0</version>清理非NiFi的SNAPSHOT依赖
遍历pom.xml中的<dependencies>节点,找到所有groupId不是org.apache.nifi开头的依赖:- 如果是第三方依赖,将其版本从
xxx-SNAPSHOT改为对应的正式发布版本(例如com.google.guava:guava:32.1.3-jre而非32.1.3-SNAPSHOT)。 - 如果是你本地开发的关联模块,先执行
mvn clean install -DskipTests将该模块以正式版本安装到本地Maven仓库,再更新处理器模块的依赖版本。
- 如果是第三方依赖,将其版本从
重新执行构建
运行以下命令重新构建NAR包:mvn clean package
临时允许SNAPSHOT(仅开发环境)
如果开发阶段确实需要保留SNAPSHOT依赖,可以在NAR模块的pom.xml中修改NAR插件配置,允许SNAPSHOT依赖:
<plugin> <groupId>org.apache.nifi</groupId> <artifactId>nifi-nar-maven-plugin</artifactId> <version>${nifi.version}</version> <extensions>true</extensions> <configuration> <allowSnapshotDependencies>true</allowSnapshotDependencies> </configuration> </plugin>
⚠️ 注意:此配置仅用于本地开发调试,正式发布必须移除并使用正式版本依赖。
内容的提问来源于stack exchange,提问作者Giorgi Tsiklauri
相关产品推荐
相关产品推荐

