ComponentMetadataHandler

允许构建提供规则来修改依赖软件组件的元数据。组件元数据规则在构建脚本的 dependencies 块的 components 部分应用 DependencyHandler。这些规则可以通过两种不同的方式定义

  1. 作为在 components 部分直接应用的动作
  2. 作为实现 ComponentMetadataRule 接口的独立类

示例展示了从我们的一个依赖项中移除特定传递依赖项的基本方法。

plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    components {
        withModule("jaxen:jaxen") {
            allVariants {
                withDependencies {
                    removeAll { it.group in ["dom4j", "jdom", "xerces", "maven-plugins", "xml-apis", "xom"] }
                }
            }

        }
    }
    implementation("jaxen:jaxen:1.1.3")
}

属性

无属性

方法

方法描述
all(规则)

添加一个规则闭包,该闭包可以修改任何已解析软件组件的元数据。

all(规则)

添加一个基于类的规则,该规则可以修改任何已解析软件组件的元数据。

all(规则, 配置动作)

添加一个基于类的规则,该规则可以修改任何已解析软件组件的元数据。该规则本身由提供的配置动作进行配置。

all(规则源)

添加一个可以修改任何已解析软件组件元数据的规则。

all(规则)

添加一个规则动作,该动作可以修改任何已解析软件组件的元数据。

withModule(id, 规则)

添加一个规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

withModule(id, 规则)

添加一个基于类的规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

withModule(id, 规则, 配置动作)

添加一个基于类的规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

withModule(id, 规则源)

添加一个规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

withModule(id, 规则)

添加一个规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

脚本块

无脚本块

方法详情

添加一个规则闭包,该闭包可以修改任何已解析软件组件的元数据。

提供的规则闭包必须将 ComponentMetadataDetails 声明为其第一个参数,以允许修改组件元数据。

此外,规则可以声明额外的(只读)参数,这些参数可能提供有关组件的更多详情。这些额外参数的顺序不重要。

支持以下额外参数类型

  • IvyModuleDescriptor - 额外的 Ivy 特定元数据。声明此参数的规则仅对打包为 Ivy 模块的组件调用。
  • PomModuleDescriptor - 额外的 Maven 特定元数据。声明此参数的规则仅对打包为 POM 模块的组件调用。

添加一个基于类的规则,该规则可以修改任何已解析软件组件的元数据。

ComponentMetadataHandler all(Class<? extends ComponentMetadataRule> rule, Action<? super ActionConfiguration> configureAction)

添加一个基于类的规则,该规则可以修改任何已解析软件组件的元数据。该规则本身由提供的配置动作进行配置。

添加一个可以修改任何已解析软件组件元数据的规则。

ruleSource 是一个 Object,它包含一个用 Mutate 注解标记的单一规则方法。

该规则方法

添加一个规则动作,该动作可以修改任何已解析软件组件的元数据。

ComponentMetadataHandler withModule(Object id, Closure<?> rule)

添加一个规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

规则闭包参数必须满足与 ComponentMetadataHandler.all(groovy.lang.Closure) 相同的要求。

添加一个基于类的规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

ComponentMetadataHandler withModule(Object id, Class<? extends ComponentMetadataRule> rule, Action<? super ActionConfiguration> configureAction)

添加一个基于类的规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

ComponentMetadataHandler withModule(Object id, Object ruleSource)

添加一个规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。

规则源参数必须满足与 ComponentMetadataHandler.all(java.lang.Object) 相同的要求。

添加一个规则,该规则可以修改属于指定模块的任何已解析软件组件的元数据。