Apache NiFi 之外的依赖项不得使用 SNAPSHOT 版本

问题描述 投票:0回答:2

我是 NiFi 新手,我正在尝试开发我的第一个定制处理器。

我正在关注有关如何创建一个的文档/教程,我在这里:

  1. 为nifi-processor生成maven骨架项目; (✔)

  2. onTrigger(...)
    方法中添加了一些简单的实现; (✔)

  3. 无法构建

    .nar
    。 (x)

每当我在自定义处理器项目结构的任何子目录(

mvn clean package
nifi-artifactBaseName-nar
)或项目的根目录中执行
nifi-artifactBaseName-processors
时,我都会得到:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.2.1:enforce (enforce-maven-version) on project nifi-myfirstcustomrprocessor-nar:   
[ERROR] Rule 3: org.apache.maven.enforcer.rules.dependency.RequireReleaseDeps failed with message:
[ERROR] Dependencies outside of Apache NiFi must not use SNAPSHOT versions
[ERROR] com.giorgi.tutorials:nifi-myfirstcustomrprocessor-nar:nar:1.0-SNAPSHOT
[ERROR]    com.giorgi.tutorials:nifi-myfirstcustomrprocessor-processors:jar:1.0-SNAPSHOT <--- is not a release dependency

我做错了什么吗?有什么帮助吗?

apache-nifi
2个回答
2
投票

解决了。

创建自定义处理器项目(或任何 Maven 项目)时,默认生成版本

1.0-SNAPSHOT
(无论您是否从命令行、IDE 等创建它),这对于 NiFi 自定义处理器来说是不行的- 您不应该使用
SNAPSHOT
来对自定义处理器工件进行版本控制。

我刚刚将

1.0-SNAPSHOT
更改为
1.0
,一切正常 -
.nar
已建成。


0
投票

在 Java 中开发自定义 Nifi 处理器时,有一种方法可以使用快照版本号。

技巧是将以下行添加到

pom.xml
子模块内的
nifi-XXX-nar
文件中:

<enforcer.skip>true</enforcer.skip>
位于
<properties>
标签内。例如

    <properties>
        <maven.javadoc.skip>true</maven.javadoc.skip>
        <source.skip>true</source.skip>
        <enforcer.skip>true</enforcer.skip>
    </properties>
© www.soinside.com 2019 - 2024. All rights reserved.