2011-07-04 64 views
0

我想包裝一些瓶子作爲捆綁,我希望其他捆綁能夠依賴。使用Spring dm Server,過去這很簡單,只需將jar文件添加到新的bundle項目,導出所有類,並確保jar文件位於構建和類路徑中。解決與罐子捆綁的處女座依賴關係

這裏是我想要做的(並在我失敗的)一個簡單的,典型的例子:

採取的,例如,約達時間,我想在這一束這樣我就可以分享它作爲依賴。首先,我創建了一個包來保存的jar:

  1. 創建一個新包項目的Eclipse(靛藍的Java EE)
  2. 在項目根目錄下創建一個文件夾「LIB」
  3. 添加喬達時間 - 1.6 .1.jar的 「LIB」 文件夾
  4. 添加的lib /喬達時間-1.6.1.jar到構建路徑
  5. 更新的src/META-INF/MANIFEST.MF,導出所有類:

     
    Manifest-Version: 1.0 
    Bundle-Version: 1.0.0 
    Bundle-Name: joda-time 
    Bundle-ManifestVersion: 2 
    Bundle-SymbolicName: org.joda.time 
    Bundle-ClassPath: lib/joda-time-1.6.1.jar, 
    . 
    Export-Package: org.joda.time, 
    org.joda.time.base, 
    org.joda.time.chrono, 
    org.joda.time.convert, 
    org.joda.time.field, 
    org.joda.time.format, 
    org.joda.time.tz 
    

現在,我們希望在我們已經創造了一些新的捆綁使用此:

  1. 在Eclipse中創建(靛藍的Java EE)的新包項目 「MyDepTest」
  2. 編輯的src/META -INF/MANIFEST.MF導入org.joda.time:

     
    Manifest-Version: 1.0 
    Bundle-Version: 1.0.0 
    Bundle-Name: MyDepTest 
    Bundle-ManifestVersion: 2 
    Bundle-SymbolicName: com.foo.deptest 
    Import-Package: org.joda.time 
    Import-Bundle: org.joda.time;version="[1.0.0,1.0.0]" 
    
  3. 的org.joda.time包添加到項目中引用so Eclipse can resolve the depenencies

  4. 編寫類:

    package com.foo.deptest; 
    import org.joda.time.DateTime; 
    public class SimpleDepTest { 
        public SimpleDepTest(){ 
         DateTime dt = new DateTime(); 
        } 
    } 
    

現在,org.joda.time.DateTime應該可以解決,但是Eclipse指示與紅色下劃線上org.joda

以下錯誤進口org.joda不能得到解決

我哪裏出錯了?如何將一個jar包裝爲一個包,以便我可以使用其他包中的類?

回答

1

事實證明,將jar添加到classpath是不夠的,我們還需要確保它是構建路徑的一部分。這是在生成配置對話框中完成:

  1. 鼠標右擊項目出口的依賴
  2. 選擇「屬性」
  3. 選擇「Java構建路徑」
  4. 轉到「排序和導出」選項卡
  5. 確保選中了jar旁邊的複選框(這可確保jar本身在構建路徑上結束)