簡體   English   中英

在Github中包含.jar文件以保持一致性

[英]Including .jar files in Github for consistency

我是新手使用github並一直試圖通過查看其他人的存儲庫來弄清楚這個問題,但我無法弄明白。 當人們將github中的存儲庫分叉/克隆到他們的本地計算機以在項目上進行開發時,是否期望克隆的項目是完整的(即,它具有正確運行所需的所有文件)。 例如,如果我以.jar文件的形式使用第三方庫,我是否應該在存儲庫中包含該.jar文件,以便我的代碼可以在有人克隆時運行,或者更好只是記下你正在使用這樣的第三方庫,用戶需要在開始工作之前將這些庫下載到其他地方。 我只想弄清楚我的代碼提交的最佳實踐。

謝謝!

基本上就像克里斯說的那樣。

您應該使用具有包管理器的構建系統。 這樣,您可以指定所需的依賴項,並自動下載它們。 我個人與maven和螞蟻合作過。 所以,這是我的經驗:

Apache Maven:

關於maven的第一個詞,它不是包經理。 它是一個構建系統。 它只包含一個包管理器,因為對於java人來說,下載依賴項是構建過程的一部分。

Maven提供了一組很好的默認設置。 這意味着您只需使用archtype插件來創建項目(cli上的“mvn archetype:create”)。 將原型視為項目的模板。 您可以選擇最適合您需求的原型。 如果您使用某個框架,可能會有一個原型。 否則,簡單項目原型將是您的選擇。 之后您的代碼轉到src / main / java,您的測試用例轉到src / test / java,“mvn install”將構建所有內容。 依賴關系可以以maven的依賴關系格式添加到pom中。 http://search.maven.org/是尋找依賴關系的地方。 如果你在那里找到它,你可以簡單地將xml片段復制到你的pom.xml(由maven的原型系統為你創建)。

根據我的經驗,maven是獲得具有依賴關系和測試執行設置的項目的最快方法。 此外,我從來沒有經歷過在我的機器上工作的maven構建在其他地方失敗(除了具有一年歷史的Java版本的計算機)。 魅力在於maven的默認生命周期(或構建周期)涵蓋了您的所有需求。 幾乎所有東西都有很多插件。 但是,如果你想做一些maven生命周期未涵蓋的事情,你就會遇到大問題。 但是,我只在混合語言項目中遇到過這種情況。 一旦你需要除了java之外的任何東西,你就會被搞砸了。

Apache常春藤:

我只和Apache Ant一起使用它。 但是,Ivy是一個包管理器,ant提供了一個構建系統。 Ivy作為插件集成到ant中。 雖然maven通常可以開箱即用,但Ant要求您手動編寫構建文件。 這允許比maven更大的靈活性,但是還有另一個要編寫和維護的文件的獎勵。 基本上Ant文件與任何源代碼一樣復雜,這意味着您應該對它們進行注釋和記錄。 否則,您將無法在以后維護構建過程。

Ivy本身就像maven的依賴系統一樣容易。 您有一個定義依賴項的xml文件。 至於maven,你可以在maven中心http://search.maven.org/上找到合適的xml片段。

總結一下,如果你有一個簡單的Java項目,我推薦使用Maven。 Ant適用於需要在構建中執行特殊操作的情況。

暫無
暫無

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

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