簡體   English   中英

如何在 OSGi/Equinox/Eclipse 中附加庫包的源代碼?

[英]How do I attach the sources for a library bundle in OSGi/Equinox/Eclipse?

commons-lang3創建了一個庫包,這很好用。 我可以構建包,添加依賴項,然后在我的插件中使用該包中的所有類。

但是我在調​​試器中沒有看到源代碼。

為這個庫包創建源包的最簡單方法是什么?

PS:庫包是包含原始 JAR 文件的插件; Eclipse 不會再次編譯源代碼,它只是將現有的 JAR 添加到類路徑中。

您可以在包的OSGI-OPT/src路徑下包含源; 然后它們將被 Eclipse 調試器看到(不確定其他 IDE,因為我只使用 Eclipse)。 我發現這比創建單獨的源包要簡單得多,因為一個工件比兩個更容易管理,如果您使用BndBndtools構建,我們默認創建這樣的包。

在需要部署到資源受限環境的極少數情況下,您可以簡單地從捆綁包中刪除OSGI-OPT目錄; 此名稱是可選數據的約定,可以在不影響包的操作的情況下刪除這些數據。

順便提一下,我們的方法受到 UNIX 可執行文件的啟發,這些文件通常包含額外的調試符號,以及在需要時刪除它們以創建較小的可執行文件的strip命令。

如果您將源文件添加到它們自己的 jar 中,則創建一個 META-INF/MANIFEST.MF 文件,其中包含一個“Eclipse-SourceBundle”條目,該條目指定了您的庫包的符號名稱。 下面是我從 Felix jar 中得到的一個例子:

Manifest-Version: 1.0
Eclipse-SourceBundle: org.apache.felix.main;version="4.0.1";roots:="."
Bundle-Version: 4.0.1
Bundle-Name: Apache Felix Framework
Bundle-ManifestVersion: 2
Bundle-Vendor: The Apache Software Foundation
Bundle-SymbolicName: org.apache.felix.main.source

為了能夠在 Eclipse 中查看源代碼,請確保此源 jar 位於您的 PDE 目標中(Windows->Preferences->Plugin Development->TargetPlatform)。 如果您使用 Eclipse 本身作為目標平台,只需將其放入您的 Eclipse 插件文件夾中。

暫無
暫無

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

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