簡體   English   中英

我應該使用Eclipse插件(或OSGi捆綁軟件)作為普通的依賴項管理工具嗎?

[英]Should I use Eclipse plug-ins (or OSGi Bundles) as a plain dependency management tool?

再次發生了……我加入了一個新項目,該項目由幾個相互依賴的簡單Eclipse Java項目組成,所有項目都通過項目構建路徑進行管理。 我覺得這有點混亂。 當涉及到運行配置時,您只需輸入地獄即可。

過去,即使我從未打算將這些項目作為osgi-bundles運行,我仍然堅持創建插件項目,而不是普通的Java項目。 我只是發現依賴關系在插件項目中更易於管理。 其他人走同樣的路嗎? 反對這種方法嗎?

如果您閱讀org.aspectj文檔重組,那么該項目正是這樣做的:

  • 所有依賴項都將在OSGi捆綁包清單文件中表示,該文件指定一個類路徑(用於庫jar)和“必需”捆綁包。
    出於構建和測試目的,必須包括部署環境中預期或希望的庫(例如XMLJRocket ),但不應包括在發貨產品中。 這些可能被指定為“可選”必需包或必需包

  • 初始二進制程序集將通過通常的bundle程序集工作,bundle輸出包括其所需的bundle片段中的二進制文件(但不包括可選的bundle中的二進制文件)

好處還包括OSGi的版本方面,它允許指定依賴項的最小和最大預期版本。

我同意,在Eclipse中,使用OSGi管理項目依賴關系比添加項目或庫引用的傳統方式要容易得多。

但是,如果在開發時推廣OSGi-依賴性管理方式,則開發人員將需要學習OSGi,並且由於遇到類可見性問題而將付出一定的代價。

您是否正在使用Require-BundleImport-Package來管理依賴項? 即使Require-Bundle不是OSGi的推薦選擇,但從開發時間依賴性管理的角度來看,它可能更適合。

除非您使用Maven插件之類的東西,否則Eclipse將在Eclipse內部和外部進行完全不同的編譯/運行方法的煩人分裂-維護2個並行編譯/運行系統很麻煩。

我認為,即使您不在OSGi容器中運行,也要使用OSGi進行依賴項管理的方法非常合理,因為最終它將導致更多的模塊化代碼。 模塊化代碼更易於重構,更易於在多個開發人員之間分發。 您甚至不需要擴展任何OSGi類,因此無需創建任何其他依賴項。

另一方面,Ken Liu提出的使用外部依賴項管理的建議也具有其優勢,因為Maven之類的東西將為您處理很多依賴項和管理。

結合兩者,您將獲得兩全其美的體驗。 可以使用Bndm2eclipse等其他庫使OSGi與Maven一起使用。

聽起來這是一種有趣的方法,但我個人認為最好使用Ant或Maven等外部構建工具來管理構建依賴關系,而不是將構建與IDE綁定。 如果您使用maven和m2eclipse插件,那么當其他項目也在您的工作空間中時,它將在裝入Maven POM時自動設置Eclipse項目依賴項。

不幸的是,如果您的團隊當前正在使用臨時依賴管理,那么他們不太可能會想跳到Maven。 再說一遍,也許他們只需要一個領導者來帶頭努力。

我不會親自使用插件項目,而會使用Ant,Maven等構建工具。

如果沒有集成構建系統,則意味着該公司對軟件開發的了解不多。

我不會全權負責引入構建系統,可能要花幾個小時。 如果他們不想遷移,建議您盡快開始尋找另一份工作。

這里有兩個獨立的問題。

  1. 如何設置多個項目,以及
  2. 哪個構建系統允許我構建多個項目

兩者不必關聯。 因此,例如,您可以選擇Maven來構建項目,但可以使用插件項目來簡化編輯。 大多數事情擊敗了Eclipse構建系統。 一旦開始工作,它就相當穩定-但要使它從無到有地工作,將涉及(a)運氣,和/或(b)黑魔法。

最終,問題歸結為您覺得更容易管理; 兩種類型的依賴關系,或僅一種依賴關系。 如果您只想要一個,則需要花費時間在m2eclipse之類的東西上(它從maven POM生成項目依賴項),或者使用pax-construct(它可以從maven POM生成清單)。 要么,要么與兩個依賴項管理系統一起使用。

暫無
暫無

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

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