2.2. 规则标签
标签是为规则或规则集以及依赖项指定的 key=val
对。对于依赖项,供应商会在检索依赖项时添加标签。规则集上的标签由属于它的所有规则自动继承。
标签格式
标签在 labels
字段中指定为 key=val
格式的字符串列表,如下所示:
labels: - "key1=val1" - "key2=val2"
labels:
- "key1=val1"
- "key2=val2"
标签的键可以是子域前缀:
labels: - "konveyor.io/key1=val1"
labels:
- "konveyor.io/key1=val1"
标签的值可以为空:
labels: - "konveyor.io/key="
labels:
- "konveyor.io/key="
标签的值可以省略。在这种情况下,它将被视为空值:
labels: - "konveyor.io/key"
labels:
- "konveyor.io/key"
保留标签
分析器定义了一些具有特殊含义的标签,如下所示:
-
konveyor.io/source
:标识规则或规则集应用到的源技术。 -
konveyor.io/target
: 标识规则或规则集应用到的目标技术。
标签选择器
分析器 CLI 将 --label-selector
字段用作选项。这是一个字符串表达式,支持逻辑 AND、OR 和 NOT 操作。您可以使用它来根据其标签过滤或过滤出规则。
示例:
要过滤所有带有键
konveyor.io/source
且值为eap6
的规则:--label-selector="konveyor.io/source=eap6"
要过滤所有带有键
konveyor.io/source
和任何值标签的规则:--label-selector="konveyor.io/source"
使用
&
amp;& operator 在与多个规则匹配时执行逻辑 AND 操作:--label-selector="key1=val1 && key2"
使用
||
运算符对多个规则执行逻辑 OR 操作:--label-selector="key1=val1 || key2"
要执行 NOT 操作来过滤使用
!
operator 设置key1=val1
标签的规则:--label-selector="!key1=val1"
使用 AND 对子表达式进行分组和控制优先级:
--label-selector="(key1=val1 || key2=val2) && !val3"
依赖项标签
分析器引擎为依赖项添加标签。这些标签提供有关依赖项的额外信息,如其编程语言以及依赖项是否为开源还是内部。
目前,分析器会将以下标签添加到依赖项中:
labels: - konveyor.io/dep-source=internal - konveyor.io/language=java
labels:
- konveyor.io/dep-source=internal
- konveyor.io/language=java
依赖项标签选择器
分析器 CLI 接受 --dep-label-selector
选项,该选项允许根据标签从依赖项生成的 filtering-in 或 filtering-out 事件。
例如,分析器将 konveyor.io/dep-source
标签添加到依赖项中,其值表示依赖项是否为已知的开源依赖项。
要排除所有此类开源依赖项的事件,您可以使用 -dep-label-selector
,如下所示:
konveyor-analyzer … --dep-label-selector !konveyor.io/dep-source=open-source
分析器中的 Java 供应商也可以向软件包列表添加一个 exclude 标签。要排除所有这样的软件包,您可以使用 --dep-label-selector
和 !
operator,如下所示:
konveyor-analyzer … --dep-label-selector !konveyor.io/exclude