[英]How can I build a Gradle project that depends on another, but keep local paths out of version control?
我正在組織我的兩個Java項目。 兩者都使用Git進行版本控制。 為了構建它們,我從調用javac
簡單shell腳本遷移到Gradle。 項目C取決於項目L。項目C的build.gradle
如何從項目L中找到所需的內容? 我想避免檢查計算機本地的版本控制路徑。 我覺得我必須缺少一種比以下方法更好的解決方案:
build.gradle
Project L的源路徑添加到Project C的源路徑:這是本地路徑。 有什么好的解決方案?
使用Project C下的Git將Project L設置為子模塊。然后讓Project C將Project L視為庫/預編譯的庫。 這里的一個注意事項是確保您永遠不要修改子模塊中的代碼! 如果需要更改,請確保在單獨的項目中進行更改。 否則將使您頭痛。
Gradle可以使用本地Maven存儲庫。 它甚至使用與Maven相同的機制來確定.m2
文件夾的位置。
如果在settings.xml中定義了本地存儲庫位置,則將使用此位置。
USER_HOME/.m2
的settings.xml優先於M2_HOME/conf
的settings.xml。 如果沒有settings.xml可用,則Gradle使用默認位置USER_HOME/.m2/repository
。
只要將ProjectL工件發布到本地Maven,就可以在不使用本地路徑的情況下從ProjectC的存儲庫中使用它們。 只需確保在C之前構建並發布L。有關發布到Maven倉庫的更多詳細信息, 請參見此處 。
可以在gradle中將本地Maven存儲庫定義為:
repositories {
mavenLocal()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.