ComponentMetadataHandler

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

  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(rule)

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

all(rule)

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

all(rule, configureAction)

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

all(ruleSource)

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

all(rule)

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

withModule(id, rule)

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

withModule(id, rule)

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

withModule(id, rule, configureAction)

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

withModule(id, ruleSource)

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

withModule(id, rule)

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

脚本块

无脚本块

方法详情

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

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

此外,该规则可以声明额外的(只读)参数,这些参数可以提供关于组件的额外细节。这些额外参数的顺序并不重要。

支持以下额外的参数类型

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

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

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

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

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

ruleSource 是一个对象,它有一个用 Mutate 注解的规则方法。

此规则方法

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

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)

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

规则 source 参数与 ComponentMetadataHandler.all(java.lang.Object) 的要求相同。

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