我在从gogo shell
更新我的包时遇到麻烦。我有一个gogo shell
在终端上运行。我的bundle在那里是活动的。
现在,当我对代码进行更改时,需要哪些步骤将这些更改转发到正在运行的OSGi框架中?
我运行更新<bundleId>
,但没有发生任何事情。它仍然运行在我启动框架时编译的相同版本。在更新命令之前,我打开另一个终端并运行mvn clean install
(我使用maven-bundle-plugin
和pax-construct
)。
当使用Maven时,我检查更新代码的工作流程涉及两个终端。
- 更新代码后,我从项目中运行
mvn install
,它将构建实际的bundle。跟踪目标包在系统中的绝对位置。 - 在运行的框架中,我更新bundle,给它一个URL;比如
update 25 file:///Users/you/project/bundle/target/bundle.jar
如果你可以不使用Maven和Pax Runner,你也可以看看bndtools,它是一个Eclipse插件。然后,你仍然可以使用bndtools为你构建的包,并使用Pax Runner运行它们。
另一个尝试是通过OBR本地回购如下:
-假设工件称为test-api,那么
a) g! deploy test-api
在id: 25下部署
在对代码和mvn clean install
进行进一步更改后:
1) g! update 25
2) g! refresh
如果没有结果,则在步骤1之前尝试g! repos refresh file:///c:/Users/.m2/repository.xml
刷新本地OBR repo