2013-05-14 89 views
1

我目前正在開發一個Eclipse插件。它的構建和部署由Tycho和Maven提供支持。現在我想添加Googles Guava v。14作爲依賴項目。 On the Tychos wiki page我發現它只能解決依賴關係,如果它們是OSGi包。我無法找到這個版本的Guava作爲OSGi包。那麼這種情況的常見解決方法是什麼?從Guava庫,添加MANIFEST,將其捆綁,並添加到項目的路徑,接縫對我來說是一個非常骯髒的解決辦法在Eclipse插件中使用非OSGi包

  • 退房感興趣的修訂 - 我需要自己維護這個包,我不能簡單地升級一個包,我需要在CI的VCS中提交一個二進制文件。
  • 做同樣的事情,但在一些maven倉庫中存儲捆綁軟件 - 維護與源代碼的倉庫實際上重複現有的,升級不是那麼簡單。

在我看來,它非常難以導入OSGi項目中的現有Java代碼。

回答

0

不要試圖庫轉換爲OSGi包自己:

  • 要麼,很簡單將庫轉換爲OSGi包,例如如果使用基於BND的工具之一可以生成正確的清單。

    在這種情況下,庫的提供者應該直接執行此操作。對於Maven構建,他們只需要添加maven-bundle-pluginbundle目標。或者,很難將庫變成OSGi包,例如,因爲庫使用的類加載概念在OSGi中不起作用。

    在這種情況下,庫需要更改,並且只能由庫的提供者完成。

2

番石榴是100%的OSGi ......和幾個字符達到30

+0

謝謝回覆列表,我認爲我會用番石榴做一些錯誤,但是與其他非OSGi軟件包有什麼不同? – speechkey 2013-05-14 12:26:32

+0

事實上,現在有很多的罐子都有OSGi元數據。所以首先,避免像瘟疫一樣的非OSGi罐子。其次,在http://jpm4j.org上搜索。第三,自己打包並將其添加到http://jpm4j.org。 – 2013-05-16 06:28:47

+0

非常感謝jpm4j,看起來很有希望。我會看看。 – speechkey 2013-05-16 10:09:20

0

番石榴是一種OSGI在你的依賴部分添加到您的pom.xml

<dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>18.0</version> <!--Replace with version you want to use--> 
    </dependency> 

確保您列出Maven的中央儲備庫可在您的倉庫

<repository> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
     <id>central</id> 
     <name>Central Repository</name> 
     <url>https://repo.maven.apache.org/maven2</url> 
    </repository>