2013-05-29 64 views
4

我一直在頭撞牆近6個月,現在還沒有找到一個簡明的方式來理解用第三方資源開發eclipse插件的機制。使用maven依賴關係開發eclipse插件

我們正在嘗試開發一個Eclipse ODA來訪問基於REST的信息集的內部基於Spring的代碼。

在廣招 - 這就是我覺得我們需要能夠做到:

  • 增強我們與Eclipse Maven構件使用第谷或菲利克斯捆綁插件捆綁的信息。
  • 通過Eclipse爲ODA實現& UI設置一個插件項目。
  • 讓Tycho爲插件生成poms等。

現在,這裏是我渾濁的地方。據我所知,有兩種方法

  1. Manifest優先 - 這是用於定義插件的依賴
  2. POM-首先,標準的機制 - 它通過Maven的解決機制提供了依賴。

我不完全確定從哪裏開始嘗試開始這樣做,因爲我從來沒有開發過eclipse插件。

我的一個其他問題是,eclipse插件的開發人員(maven旁邊)如何利用已經存在的第三方代碼(即Apache HttpClient 4.x)?他們是否必須下載jar,將它們轉儲到項目中的目錄中,添加到classpath中,然後從那裏下載,或者存在類似於ivy,maven,gradle的「存儲庫」機制?

在此先感謝,我很抱歉,如果我隨便說些什麼。

回答

1

Eclipse插件使用庫的最佳方式是使用OSGi包。您只需將這些軟件包安裝到目標平臺中,並以eclipse.org插件的相同方式引用它們即可。一些圖書館提供者已經將他們的圖書館作爲OSGi包提供。如果沒有,通常只需添加一些清單條目即可將簡單的庫jar轉換爲OSGi包。

根據您使用的構建系統以及您需要的庫是否可用作打包到聯機p2存儲庫中的OSGi軟件包,您可以引用該URL並依賴您的構建下載和安裝該軟件包。

+0

謝謝你的提示!現在 - 爲了我的理智 - 這可能會非常明顯 - 如何安裝OSGi軟件包?它們可以通過URL從遠程位置引用嗎? –

+0

捆綁包發佈在所謂的「p2儲存庫」中。 p2系統提供了對Eclipse環境的配置。查找artifacts.jar和content.jar以查看URL是否爲p2存儲庫。如果你有一個包而不是一個p2庫,各種構建系統都有合成本地庫的方法來安裝。 –

+0

在進一步探索這個領域之前,你應該真的選擇構建系統。很多答案都取決於你去哪裏。 Maven/Tycho方法有一個大型社區可以提供支持。它也與Eclipse插件開發環境(PDE)兼容,因爲它首先顯現。 –

1

如果選擇構建系統的Eclipse插件與依賴的問題仍然是相關的:

今天我發佈新插件的gradle:Wuff版本0.0.1,這(我認爲)徹底解決了這個問題。它允許構建Eclipse捆綁包和應用程序,因爲它們是「普通」的Gradle項目。所有OSGi woodoo都是自動生成的(儘管可定製)。所有的依賴都是通常的Maven依賴 - 無論依賴是OSGi還是「普通」庫。

來源和DOC:https://github.com/akhikhl/wuff

2

免責聲明:你提的問題是非常廣泛的,所以它不可能完全回答這個問題。不過,我可以給你一些提示,以便你知道要搜索什麼。

在Eclipse Universe中,庫的主要來源(二進制依賴關係)是p2存儲庫。但是,由於p2存儲庫很少在Eclipse上下文之外使用,因此您不會在Apache HTTP Client項目的下載頁面上找到一個p2存儲庫。

爲了解決這個問題,是它提供了P2存儲庫使用Eclipse項目庫Eclipse Orbit Project

如果你不能找到在Eclipse軌道庫或庫版本,您可能還可以使用庫從Maven倉庫。例如,這由Tycho通過pomDependencies =考慮機制來支持。

然而要注意Eclipse插件只能依賴於它們的OSGi包庫。因此,如果Maven存儲庫中的庫尚不是OSGi包,則需要先將其轉換爲OSGi包,例如,使用maven-bundle-plugin和Embed-Dependency機制。