簡體   English   中英

用本地克隆替換 gradle 依賴

[英]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 嗎?

筆記:

  • 沒有使用 IDE 來處理這個
  • 項目是通過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.

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