亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 gradle 多項目存儲庫作為 git 子模塊包含在另一個 gradle 項目中

如何將 gradle 多項目存儲庫作為 git 子模塊包含在另一個 gradle 項目中

繁星點點滴滴 2023-07-19 10:54:09
我正在嘗試將 Gradle 多項目存儲庫作為 git 子模塊導入到另一個 Gradle 項目中。這是多項目存儲庫的結構:MyLibrary- lib-api  - api-config  - api-repository- lib-impl  - impl-config  - impl-repository在 Gradle 項目中MyLibrary,有幾個模塊依賴于該項目中的其他模塊。例如,lib-api:api-repository具有以下依賴關系:implementation project(':lib-api:api-config')(下面的模塊lib-impl還包含各自的 api 作為依賴項)到目前為止一切正常,我可以構建、運行和測試lib-impl.現在我嘗試將項目導入到另一個項目中我用來git submodule add添加MyLibrary到MyProject. 這是現在的結構:MyProject- MyLibrary  - lib-api    - api-config    - api-repository  - lib-impl    - impl-config    - impl-repository- api- impl為了能夠使用 下的模塊MyLibrary,我將settings.gradle文件編輯MyProject為如下所示:rootProject.name = 'MyProject'include 'api'include 'impl'include 'mylibrary'include 'mylibrary:lib-api'include 'mylibrary:lib-impl'include 'mylibrary:lib-api:api-config'include 'mylibrary:lib-api:api-repository'include 'mylibrary:lib-impl:impl-config'include 'mylibrary:lib-impl:impl-repository'問題現在,下面的模塊MyLibrary屬于根項目MyProject,其中的所有內部依賴項都MyLibrary需要以 為前綴:mylibrary。但這僅適用于MyLibrary當前是另一個項目的子模塊的情況。為了構建MyProject,我需要更改內部的依賴關系MyLibrary:implementation project(':lib-api:api-config')implementation project(':lib-api:api-repository')對此:implementation project(':mylibrary:lib-api:api-config')implementation project(':mylibrary:lib-api:api-repository')但是,:mylibrary不需要存在即可MyLibrary自行成功編譯(即,如果MyLibrary是根項目)。MyLibrary但要作為子模塊工作,需要進行此更改。這曾經不是一個大問題,因為我總是可以拉出子模塊MyLibrary并編輯必要的build.gradle文件。MyLibrary然而,我現在開始嘗試設置持續集成,每當我嘗試構建時,我都會收到有關這些導入在內部無效的錯誤,MyProject因為 CI 總是直接從 git 存儲庫獲取代碼。我覺得如果以下聲明是有效的,它可以解決我的問題:implementation project(':mylibrary:lib-api:api-config').ifNotPresent(':lib-api:api-config')預先感謝您的任何幫助
查看完整描述

1 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

經過一次精彩的發現后,我意識到文件中允許使用 java 代碼build.gradle,所以我很自然地這樣做了:


dependencies {

    if (rootProject.getName().equals("MyLibrary")) {

        implementation project(':lib-api:api-config')

    } else {

        implementation project(':mylibrary:lib-api:api-config')

    }

}


查看完整回答
反對 回復 2023-07-19
  • 1 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號