2012-02-09 65 views
0

我已經在Eclipse靛藍SR1以下項目設置:日食不能從所需項目導出包

  • ,其中包括包(P)
  • 插件項目(B)普通Java項目(A)其中有從A出口的JAR的副本,並將其再出口的包裝物P
  • 其他多個插件項目(C ... Z),其中進口的包裝物P

我想要做的就是擺脫手工出口和將JAR從項目A複製到項目B.我不想將此項目轉換爲插件項目,因爲在不使用OSGi的遺留應用程序中使用了相同的項目。

這是特別惱人的,因爲當我更新JAR時,eclipse並沒有拾取修改過的類文件,並且在那裏我的所有斷點都變得瘋狂(單獨的問題)。

我想我可以編輯B的項目屬性,以便A是一個「必需的項目」(Proeprties - > Java Build Path - > Projects),並且由於它本質上包含源代碼(至少我猜測這就是.classpath中的條目所做的)我想我可以從項目B中導出包P.但是,當我這樣做時,eclipse只是抱怨說插件項目B不包含包P.

我想我可以將源文件夾從A鏈接到B,但那不是我想要做的。

如果被引用的項目A在類路徑上,那麼插件項目A應該能夠導出這些包,或者我在這個假設中錯了嗎?

什麼是實現我想要的最佳方式?

乾杯, 傑森。

回答

0

你應該考慮使用maven作爲你的構建工具。該工具的構建可以使你描述的內容自動化。 Maven

+0

謝謝,但不幸的是,我們一直在使用Ant進行現在已經有好幾年了,這不是我決定遷移到Maven的決定。我剛開始爲自己的項目使用Maven,所以這很好理解。 – Steiny 2012-02-09 22:19:51

0

在這種情況下,您應該將您的java項目轉換爲插件項目(OSGi包)。您仍然可以將它用作常規jar和插件。當你轉換它時,確保它創建了MANIFEST.MF。不要創建激活器,因爲這需要依賴於org.eclipse.osgi,並且不要添加任何其他require-bundle依賴項。

OSGi包是真的只是一個jar(這是罰款)與一個OSGi MANIFEST.MF提供像什麼包導出的信息,任何依賴性等