[英]Replace gradle dependency with local clone
我有一個 java 項目,用 gradle 管理,遠程依賴通過存儲庫解決。
implementation 'org.company:very-big-dependency:2.7.1'
我想克隆該依賴項,在本地項目上工作,並實現一個新功能。
有沒有辦法讓 gradle 像從存儲庫中那樣從本地獲取依賴項?
我試過將該項目包含在我的settings.gradle
include ':app', ":very-big-dependency"
project(':very-big-dependency').projectDir = new File(settingsDir, '../../very-big-dependency')
並定義了對我的build.gradle
的依賴
dependencies {
...
implementation project(':very-big-dependency')
但是當我運行build
gradle 時抱怨它找不到依賴項的子項目
A problem occurred evaluating script.
> Project with path ':sub-project' could not be found in project
由於項目在通過存儲庫解析時正確構建,這告訴我 gradle 在構建本地項目時的行為方式不同。
當在本地克隆上調用它自己的構建腳本時,依賴項的項目構建正確,測試通過並且一切正常。
我的項目中還有什么需要告訴 gradle 的嗎? 我需要對本地依賴項做任何其他事情嗎? 每次我想測試它時都需要構建一個 jar 嗎?
筆記:
gradle init
創建的:sub-project
,只是為了得到:A problem occurred configuring project ':very-big-dependency'.
> Could not get unknown property 'compileJava' for project ':sub-project' of type org.gradle.api.Project.
flatDir
添加到repositories
中,但沒有任何結果。您可以在settings.gradle
中嘗試includeBuild
+ dependencySubstitution
。
// include local clone of the library
includeBuild('../../very-big-dependency') {
dependencySubstitution {
// substitute remote dependency with local module
substitute module('org.company:very-big-dependency') with project(':very-big-dependency')
}
}
有關詳細信息,請參閱手冊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.