[英]Should I use Eclipse plug-ins (or OSGi Bundles) as a plain dependency management tool?
再次發生了……我加入了一個新項目,該項目由幾個相互依賴的簡單Eclipse Java項目組成,所有項目都通過項目構建路徑進行管理。 我覺得這有點混亂。 當涉及到運行配置時,您只需輸入地獄即可。
過去,即使我從未打算將這些項目作為osgi-bundles運行,我仍然堅持創建插件項目,而不是普通的Java項目。 我只是發現依賴關系在插件項目中更易於管理。 其他人走同樣的路嗎? 反對這種方法嗎?
如果您閱讀org.aspectj文檔的重組,那么該項目正是這樣做的:
所有依賴項都將在OSGi捆綁包清單文件中表示,該文件指定一個類路徑(用於庫jar)和“必需”捆綁包。
出於構建和測試目的,必須包括部署環境中預期或希望的庫(例如XML
或JRocket
),但不應包括在發貨產品中。 這些可能被指定為“可選”必需包或必需包初始二進制程序集將通過通常的bundle程序集工作,bundle輸出包括其所需的bundle片段中的二進制文件(但不包括可選的bundle中的二進制文件)
好處還包括OSGi的版本方面,它允許指定依賴項的最小和最大預期版本。
我同意,在Eclipse中,使用OSGi管理項目依賴關系比添加項目或庫引用的傳統方式要容易得多。
但是,如果在開發時推廣OSGi-依賴性管理方式,則開發人員將需要學習OSGi,並且由於遇到類可見性問題而將付出一定的代價。
您是否正在使用Require-Bundle
或Import-Package
來管理依賴項? 即使Require-Bundle
不是OSGi的推薦選擇,但從開發時間依賴性管理的角度來看,它可能更適合。
除非您使用Maven插件之類的東西,否則Eclipse將在Eclipse內部和外部進行完全不同的編譯/運行方法的煩人分裂-維護2個並行編譯/運行系統很麻煩。
聽起來這是一種有趣的方法,但我個人認為最好使用Ant或Maven等外部構建工具來管理構建依賴關系,而不是將構建與IDE綁定。 如果您使用maven和m2eclipse插件,那么當其他項目也在您的工作空間中時,它將在裝入Maven POM時自動設置Eclipse項目依賴項。
不幸的是,如果您的團隊當前正在使用臨時依賴管理,那么他們不太可能會想跳到Maven。 再說一遍,也許他們只需要一個領導者來帶頭努力。
我不會親自使用插件項目,而會使用Ant,Maven等構建工具。
如果沒有集成構建系統,則意味着該公司對軟件開發的了解不多。
我不會全權負責引入構建系統,可能要花幾個小時。 如果他們不想遷移,建議您盡快開始尋找另一份工作。
這里有兩個獨立的問題。
兩者不必關聯。 因此,例如,您可以選擇Maven來構建項目,但可以使用插件項目來簡化編輯。 大多數事情擊敗了Eclipse構建系統。 一旦開始工作,它就相當穩定-但要使它從無到有地工作,將涉及(a)運氣,和/或(b)黑魔法。
最終,問題歸結為您覺得更容易管理; 兩種類型的依賴關系,或僅一種依賴關系。 如果您只想要一個,則需要花費時間在m2eclipse之類的東西上(它從maven POM生成項目依賴項),或者使用pax-construct(它可以從maven POM生成清單)。 要么,要么與兩個依賴項管理系統一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.