Moo*_*lit 1 java osgi bundle watch
据我所知,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");
}
}
Run Code Online (Sandbox Code Playgroud)
我使用 karaf 命令安装了这个包:
osgi:install mvn:my.groupId/my.artifactId
Run Code Online (Sandbox Code Playgroud)
然后我开始使用捆绑包 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)...
我在这里做错了什么?
几个小时后,我找到了错误的来源。即使 bundle 已经是 SNAPSHOT 版本,使用它来安装 bundle 是不够的,osgi:install mvn:<groupID>/<artifactID>
但您必须<version>
在 bundle URL: 中使用too osgi:install mvn:<groupID>/<artifactID>/<version>
,其中<version>
对应于 pom.xml 中指定的版本标记。它必须是像“1.0-SNAPSHOT”这样的快照版本。
归档时间: |
|
查看次数: |
1483 次 |
最近记录: |