2011-12-05 56 views
8

我正在創建一個eclipse插件,並且遇到外部罐子的麻煩。在我的插件中,我啓動了一個需要一些外部罐子的應用程序。我需要做些什麼才能自動將其與插件的其餘部分一起導出?eclipse插件中的外部罐子

在此先感謝:)

回答

13
  1. 打開plugin.xml
  2. 轉到Runtime選項卡,在類路徑部分
+2

更多詳細信息請登錄: – eactor

+2

**重要提示:**僅添加包含文件夾是不夠的。另外,在插件的項目設置(而不是MANIFEST/plugin.xml)中添加依賴項在編譯時只會「隱藏」錯誤。 –

+0

這隻會添加當前項目的罐子。無法添加外部罐(位於磁盤上的某個位置),但它不是可移植的,但是當您需要它時,您需要它。 – ACV

8

這是一個簡單的方法,雖然它確實創建了一個額外的插件。

在Eclipse:

  • 選擇New>Other,然後Plug-in Development>Plug-in from existing JAR archives
  • 選擇你想包括的罐子。
  • 在下一頁上,配置插件。
  • 在您的插件清單中,添加新的插件作爲依賴項。
  • 在插件的「屬性」中,在Java Build PathProjects選項卡上添加新項目。

編輯:您可以通過組合,而不是了Zsolt 和user714965下面的兩個建議罐子合併到您的插件。

+2

如果組合了多個罐子,還需要確保他們的許可證允許。 –

10

按照以下的步驟,外部JAR文件將包含在您導出插件:

  1. 複製所需的外部JAR文件到您的插件項目中的文件夾;我喜歡把這個文件夾叫做lib,但是無論什麼都適合你。
  2. 在您的插件項目中打開build.properties,並在左側的Binary Build部分中檢查要包含在構建中的JAR。
+1

儘管在同一捆綁中組合罐子是可能的,但它不是在OSGi環境中執行它的「正確」方式 - http://stackoverflow.com/questions/3013583/what-is-the-standard-way- to-bundle-osgi-dependent-libraries/3015072#3015072 – Robin

+1

@Robin當然,我在上面描述的是針對手頭問題的快速和骯髒的解決方案。 –

4

這是爲我工作添加您的JAR。如果它們確實是外部的,並且這是一個針對你的公司的項目,它不會處於「狂野」狀態,並且你控制了環境,並且你在文件系統上擁有它們,在/ opt/java/lib/somedir /some.jar,可以通過將它們添加到META-INF下的MANIFEST.MF中的Bundle-ClassPath條目來告訴捆綁軟件在哪裏找到它們。語法是: 捆綁-CLASSPATH中, 外部:/opt/java/lib/somedir/some.jar, 外部:/opt/java/lib/someotherdir/someother.jar

而且這將是謹慎地在構建路徑中使用這些元素,以便在構建和運行時環境中使用相同的jar。

我已經完成了Jars在文件系統上的多用途(如apache-commons),並且我們再次控制環境。

參考如下: http://www.eclipsezone.com/eclipse/forums/t51870.html

+0

謝謝!!!這是實際的答案,它的工作原理!只要注意'* .jar'將不起作用。 – ACV

1
  1. 複製所需的外部JAR文件到您的插件項目中的文件夾;我喜歡稱這個文件夾庫,但無論適用於你。
  2. ..但是和ZsoltTörök相同(他的解決方案並不適合我)我雙擊plugin.xml,進入構建標籤,在底部,我點擊添加JAR ...,然後嘿似的,它表明我的項目,然後我瀏覽到lib和包括外部罐子,按照步驟1
0

安迪·托馬斯的做法大多是工作,但你也需要導出通過現有所需的軟件包插件添加到新的包裝插件中,以便插件可以在運行時訪問它們。

+0

這個答案更適合發表評論。也歡迎來到SO :)。 –