- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直致力于创建自定义 NIFI 处理器。我正在尝试使用 luwak 搜索库,它使用 Lucene 6.5.0。然而,NiFi 库似乎使用 Lucene 4.10.4。我已经尝试了 pom 文件的各种操作,但在构建 nar 文件时无法让它覆盖 NiFi 4.10.4 lib。这很可能是用户错误。我只是一辈子都无法弄清楚它是什么。在我的 IDE 中运行良好,但是当我构建 Artifact (NAR) 时,我可以看到 4.10.4 库在那里,但不是 Luwak 需要的某些 6.5.0 库。任何帮助将不胜感激。
阅读一项研究后,我发现如果我专门将所需库的 Lucene 版本与 DependencyMangement 一起放入 pom 中,它就会起作用。还尝试了排除(也显示)。
编辑:尝试了@Rob的建议并删除了pom进口。但是,仍然遇到同样的问题。更新的 Pom 示例
Maven 依赖树:
[INFO] gov.pnnl.nifi:nifi-streamqry-nar:nar:1.3
[INFO] \- gov.pnnl.nifi:nifi-streamqry-processors:jar:1.3:compile
[INFO] \- com.github.flaxsearch:luwak:jar:1.5.0:compile
[INFO] +- org.apache.lucene:lucene-core:jar:4.10.4:compile (version managed from 6.5.0)
[INFO] +- org.apache.lucene:lucene-memory:jar:6.5.0:compile
[INFO] | \- (org.apache.lucene:lucene-core:jar:4.10.4:compile - version managed from 6.5.0; omitted for duplicate)
[INFO] +- org.apache.lucene:lucene-analyzers-common:jar:4.10.4:compile (version managed from 6.5.0)
[INFO] | \- (org.apache.lucene:lucene-core:jar:4.10.4:compile - version managed from 6.5.0; omitted for duplicate)
[INFO] +- org.apache.lucene:lucene-queries:jar:6.5.0:compile
[INFO] | \- (org.apache.lucene:lucene-core:jar:4.10.4:compile - version managed from 6.5.0; omitted for duplicate)
[INFO] \- org.apache.lucene:lucene-queryparser:jar:4.10.4:compile (version managed from 6.5.0)
[INFO] \- (org.apache.lucene:lucene-core:jar:4.10.4:compile - version managed from 6.5.0; omitted for duplicate)
POM 文件
<properties>
<lucene.group>org.apache.lucene</lucene.group>
<lucene.version>6.5.0</lucene.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-core</artifactId>
<version>6.5.0</version>
</dependency>
<dependency>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-memory</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>${lucene.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-queries -->
<dependency>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queries</artifactId>
<version>${lucene.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queryparser</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<exclusions>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queryparser</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-mock</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queryparser</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-sandbox</artifactId>
</exclusion>
</exclusions>
</dependency>
排除:
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queryparser</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<exclusions>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queryparser</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-mock</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-queryparser</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</exclusion>
<exclusion>
<groupId>${lucene.group}</groupId>
<artifactId>lucene-sandbox</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
最佳答案
4.x lucene 版本不是通过传递依赖项引入的,因此将它们从 nifi-api 和 nifi-mock 等内容中排除不会执行任何操作。
您获得 4.x 版本的原因是您的 NAR 包根 pom 很可能有 nifi-nar-bundles 的父级,这意味着您一直继承到 NiFi 的根 pom,这导致 NiFi 的 dependencyManagement在您的 NAR 中生效。
你有两个选择...
1) 如果这是一个自定义 bundle ,将位于 NiFi 源代码树之外,那么您可以删除 bundle 和 NiFi 之间的这种关系。此处对此进行了描述:
最新的 NAR 插件是 1.2.0。
2) 如果您计划将其贡献给 NiFi,或者您正在维护自己的 NiFi 分支并希望您的 bundle 位于 nifi/nifi-nar-bundles 下,那么您应该能够完成这项工作通过在包的根 pom 中声明您自己的 dependencyManagement 部分,并声明与顶级 NiFi pom 中相同的 lucene 依赖项,并将其版本设置为 6.5.0。
NiFi 中已经有一些类似情况的示例..
例如,NiFi的顶级pom声明了特定版本的http-client,而Solr处理器需要不同的版本,因此在这里重新声明:
https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-solr-bundle/pom.xml#L43-L45
第二个选项的重要部分是,您的 dependencyManagement 部分必须位于位于处理器和 NAR 上方的 bundle 的 pom 中。
关于java - 无法覆盖来自第三方库的 Maven 依赖项 -NiFi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46968224/
我知道 C++ 中的 overriding 是什么。但是,是否存在覆盖?如果有,是什么意思? 谢谢。 最佳答案 在 C++ 术语中,您有 覆盖(与类层次结构中的虚拟方法相关)和 重载(与具有相同名称但
我想捕获位于另一个元素下的元素的鼠标事件。 这是我所拥有的示例:http://jsfiddle.net/KVLkp/13/ 现在我想要的是当鼠标悬停在红色方 block 上时蓝色方 block 有黄色
以下报道 here我尝试创建一个带有重叠散点图的箱线图。 但是当我运行时: In [27]: table1.t_in[table1.duration==6] Out[27]: counter 7
有一个 JS Fiddle here , 你能在不克隆到新对象的情况下替换 e.target 吗? 下面重复了那个 fiddle 的听众; one.addEventListener('click',
首先要解决重复的可能性: 我不是询问 Override 是什么、它的含义或 @Override 在 java 文档注释之外。那是我不是问 /**Some JavaDoc Comment*/ @over
我想要高于定义的数组。它存储点及其坐标。 public static List simpleGraph(List nodes) { int numEdges = nodes.size() *
我在 http://olisan.dk/blog/ 有一个博客- 如您所见,有一个 28 像素的高间隙(边距顶部)...在 style.css 中: margin-top: 0; 也被设置为 marg
Vulkan 句柄是指向 struct 的不透明指针,或者只是无符号的 64 位整数,具体取决于 VK_USE_64_BIT_PTR_DEFINES 的值: #if (VK_USE_64_BI
我正在尝试提供一个行为类似于 DataGridTextColumn 的 DataGrid 列,但在编辑模式下有一个附加按钮。我查看了 DataGridTemplateColumn,但似乎更容易将 Da
使用 Django 1.10 我想在用户名中允许\字符,因为我在使用“django.contrib.auth.middleware.RemoteUserMiddleware”的 Windows 环境中
我正在尝试使用 ffmpeg 将 Logo 放入 rtmp 流中。我的 ffmpeg 版本是 ffmpeg version 4.3.1目前在我的复杂过滤器中,我有: ffmpeg -re -i 'v
是否有用于Firebase 3存储的方法/规则来禁用文件更新或覆盖? 我为数据库找到了data.exists(),但没有为存储找到解决方案。 最佳答案 TL; DR:在Storage Security
我有两个 Docker Compose 文件,docker-compose.yml看起来像这样 version: '2' services: mongo: image: mongo:3.2
我需要覆盖 JPA 中的集合表吗?也许有人有想法 public class nationality{ @Embedded @AttributeOverrides({
嗨,我正在使用 WIX 和下面的代码将文件安装到目录中。 我的应用程序的工作方式是用户可以在该目录中复制他们自己的文件,覆盖他们喜欢的内容
我正在尝试为 Lua 中的字符串实现我自己的长度方法。 我已成功覆盖字符串的 len() 方法,但我不知道如何为 # 运算符执行此操作。 orig_len = string.len function
在Scala 2.10.4中,给出以下类: scala> class Foo { | val x = true | val f = if (x) 100 else 200
我想做上面的事情。 我过去覆盖了许多文件...... block ,模型,助手......但这个让我望而却步。 谁能看到我在这里做错了什么: (我编辑了这段代码......现在包括一些建议......
根据javadoc An instance method in a subclass with the same signature (name, plus the number and the ty
我有一段代码,只要有可用的新数据作为 InputStream 就会生成新数据。每次都覆盖同一个文件。有时文件在写入之前变为 0 kb。 Web 服务会定期读取这些文件。我需要避免文件为 0 字节的情况
我是一名优秀的程序员,十分优秀!