ComponentMetadataHandler

允許建置提供規則,修改所依賴的軟體組件的元數據。組件元數據規則應用於建置腳本的依賴區塊 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)

新增一個規則動作,可以修改任何已解析的軟體組件的元數據。

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 註解的規則方法。

這個規則方法

新增一個規則動作,可以修改任何已解析的軟體組件的元數據。

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) 的要求相同。

新增一個規則,可以修改屬於指定模組的任何已解析的軟體組件的元數據。