據我所知,apache karaf的dev:watch命令應該可以幫助開發osgi捆綁包,這樣我就不必每次手動更新捆綁包到該軟件包的源代碼...apache karaf dev:監視命令不起作用
我試過這個,只有一個簡單的包只包含一個Activator類。 我正在使用maven進行開發。
osgi:install mvn:my.groupId/my.artifactId
然後我開始使用osgi:start <id of my bundle>
然後我開始監測此包using dev:watch --start <id of my bundle>
Karaf告訴我,捆綁:
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
public void start(BundleContext context) {
System.out.println("Starting the bundle");
}
public void stop(BundleContext context) {
System.out.println("Stopping the bundle");
}
}
我使用karaf命令安裝的軟件包它監視我的包。 好的。
然後,我想測試如果我更改了源代碼並重新構建了我的包,那麼包是否會自動更新。 因此,我更改了激活器類的System.out.println(),並使用mvn clean install
構建了我的重建包。
不應該捆綁更新自己呢?當我看看karaf控制檯時,我發現沒有任何更改,直到我使用osgi手動更新該軟件包:更新(我想避免使用dev:watch)...我在這裏做錯了什麼?
嗨,我如何能配置明確?目標文件夾中生成的Jar被稱爲bla.blubb.1.0-SNAPSHOT.jar,所以我猜這是一個快照版本?! – Moonlit 2012-07-15 07:30:51
是的,這聽起來像一個快照版本,所以它應該工作。你使用mvn install嗎?安裝將jar部署到本地maven倉庫中。這是必要的,因爲karaf只監視本地回購站而不是目標文件夾。你還應該檢查你是否使用maven repo的默認位置或者在karaf中配置你的特殊回購位置。 – 2012-07-15 21:18:20
是的,我正在使用mvn安裝來構建包。 maven項目被放到C:/users/user/.m2/repository中,我也可以找到jar。之後,我使用「osgi:install」安裝軟件包,並指示karaf使用「dev:watch 」監視軟件包。就這樣。在我更改後的捆綁項目中再次調用mvn clean update之後,捆綁應該立即自動更新(就像我會調用osgi:update一樣)是否正確?還是我缺少任何中間步驟? –
Moonlit
2012-07-15 23:08:25