当前我有一个情况,在这里开发一个项目,然后运行mvn install
,然后将其放入我的本地Maven存储库中,作为简单的JAR文件
然后,我还有其他一些人"环境"制作的,其中包括很多捆绑包和东西,最终通过mvn pax:run
运行,运行大约5分钟
我希望能够仅运行felix:update <bundle-name>
,但是我无法填补本地Maven Repo中的Maven Jar伪像之间的差距,而我可以将其放置在某个地方可以运行felix:update
或其他任何东西,也许uninstall/install
当我尝试通过项目运行mvn pax:create-bundle
时,它会引发Containing project does not have packaging type 'pom'
异常
任何帮助得到高度赞赏
更新:我注意到重新安装的捆绑包的问题以其激活量开始,并使用ClassNotFoundException(尽管提到的类都在捆绑包中存在并且始终存在,因此必须与ClassPath,ClassPath,ClassLoader设置或其他任何问题(
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation BundleWiringImpl.java:1574 at org.apache.felix.framework.BundleWiringImpl.access$400 BundleWiringImpl.java:79 at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass BundleWiringImpl.java:2018 at java.lang.ClassLoader.loadClass ClassLoader.java:357 at some.external.adapters.package.guice.SomeModule.configure SomeModule.java:46 at com.google.inject.AbstractModule.configure AbstractModule.java:59
如果您有新构建捆绑包的文件的途径,则可以从Gogo Shell中进行更新,如下所示:
felix:update <bundleid> file:/path/to/file
refresh
其中 <bundleid>
是要更新的捆绑包的数字ID。如果任何捆绑包取决于或从您更新的捆绑包中导入软件包,则需要refresh
命令;此命令将导致框架尝试使用新的依赖项重新解决它们。
我很高兴接受 @neil-bartlett的答案,尽管我必须添加更多上下文:
1(我最初遇到的最大问题之一是,本地Maven Repo中的罐子文件与OSGI捆绑包不同。为了创建捆绑包,我必须在mvn install
之后运行mvn bundle:bundle
。捆绑包在target/
文件夹中创建。
2(之后,在gogo shell中,我确实可以运行felix:update <bundle-id> file:C:/Users/blablabla/bundle-SNAPSHOT-2.0.jar
,由于某些原因,如今,它 。在原始帖子更新中提到的例外确实正在发生,但是它们不能阻止正确安装更新的捆绑包。