簡體   English   中英

Gradle:更改外部依賴的配置

[英]Gradle: Changing configuration of external dependency

我們正處於將公共集合從版本3更新到版本4的情況。由於他們已將組ID更改為commons-collections4,我們最終將在類路徑中擁有2個版本的commons-collection。 版本3和版本4.對於我們的開發,應使用版本4。 版本3將通過外部依賴進入,所以如果我們有:

compile ("org.hibernate:hibernate-entitymanager:3.5.6-Final")

版本3將通過hibernate-entitymanager進入,也將在編譯時提供。 所以開發人員可以使用它。

有沒有辦法說“commons-collections 3現在應該被視為運行時依賴hibernate-entitymanager”?

我們正在使用Gradle 3.5。

不確定是否存在實現此目的的正確方法,但是如果在compile配置中強制所有版本的commons3替換為commons4 ,並且另外定義僅runtime注釋,該怎么辦?

configurations.compile {
    resolutionStrategy.force 'commons4',
}

dependencies {
    runtime('commons3')
}

看到這里他們使用的replacedBy來告訴gradle com.google.collections:google-collectionscom.google.guava:guava取代。 Gradle現在將這兩個模塊視為依賴解析中的單個模塊,並且永遠不會包含這兩個模塊。

dependencies {
    modules {
        module("com.google.collections:google-collections") {
            replacedBy("com.google.guava:guava")
        }
    }   
}

感謝webdizz讓我了解這個想法,似乎我通過執行以下操作來管理它:

configurations.compileClasspath.resolutionStrategy {
    dependencySubstitution {
        substitute module('commons-collections:commons-collections') with module("org.apache.commons:commons-collections4:${COMMONS_COLLECTIONS_VERSION}")
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM