据我所知,apache karaf 的 dev:watch 命令应该有助于开发 osgi 包,这样我就不必在每次更改包的源代码时手动更新包。
我试过这个,一个简单的包,它只包含一个 Activator 类。我正在使用 Maven 进行开发。
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 命令安装了包:
osgi:install mvn:my.groupId/my.artifactId
然后我开始使用osgi:start <id of my bundle>
然后我开始监控这个捆绑包using dev:watch --start <id of my bundle>
Karaf 告诉我它监控我的捆绑包。
然后我想测试如果我对源代码进行更改并重建我的包,包是否会自动更新。所以我更改了System.out.println()'s
激活器类并使用mvn clean install
.
捆绑包现在不应该自行更新吗?当我查看 karaf 控制台时,我看不到任何更改,直到我使用 osgi:update 手动更新捆绑包(我想避免使用 dev:watch)...
我在这里做错了什么?