目前我们有一个项目的标准颠覆存储库布局:./主干./分支机构./标签但是,随着我们沿着OSGi和模块化项目的道路前进,我们最终得到了:./trunk/bundle/main./trunk/bundle/modulea./trunk/bundle/模块./tags/bundle/main-1.0.0./tags/bundle/main-1.0.1./tags/bundle/modulea-1.0.0'build'仍然非常单一,因为它按顺序构建所有模块,尽管我开始怀疑我们是否应该将构建/存储库重构为更像这样的东西:./bundle/main/trunk./bundle/main/tags/
我最近开始研究OSGi。我读到可以创建bundle(这是普通的java类)并通过动态安装/卸载任何包。但我似乎无法理解在任何Java类中使用普通.JAR文件与使用bundle之间的区别。谁能帮我澄清一下?谢谢你。 最佳答案 基本上没有区别。JAR是一个包,一个包是一个JAR,格式是相同的。但是,有用包需要其list中的OSGi元数据,以便OSGi框架可以管理包之间类的可见性。没有此元数据的JAR将只包含不可见的类,看不到其他包中的任何类,也无法以任何方式启动。Import-Packagelistheader告诉包应该对包可见,而Ex
不幸的是,javapackager工具将随JDK11一起删除-因为它是JavaFX的一部分,JavaFX也将被删除。因此,将不再有为Mac或Windows创建nativeJava应用程序包的“官方”和简单方法。我尝试重新使用由Java9/10的javapackager(在Mac上:my.app/Contents/MacOS/my)生成的native启动器文件,它们似乎仍然适用于JDK11.然而,这是一个有点肮脏的解决方案。关于如何使用Java11及更高版本(首选Mac平台)本地打包和启动应用程序有什么想法吗? 最佳答案 您可以使用j
我有一个简单的问题。我跟着这个tutorial并创建了一个HelloWorldosgi包。我如何使用apache安装和启动这个包Karaf?我如何使用osgi:install命令引用该包?谢谢。 最佳答案 您只需将bundle放入“部署”目录,Karaf就会注意到并安装它。 关于java-如何在apachekaraf中安装和运行osgibundle,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu
我们正在考虑在我们的企业环境中使用分布式OSGi。我们将有以下设置:许多主机上的10到100个OSGi容器提供各种服务。其中许多服务由多个容器提供。其中一些服务可能需要在所有服务中保持一致容器(部署相同版本)。在所有容器中管理bundle的生命周期(安装、启动、更新、停止、卸载)的正确方法是什么?几个要求:由于可能有很多容器,所以应该处理所有容器一起;即当我要更新一个包时,一个命令应更新该bundle已存在的所有容器。命令必须是可重复的:首先在测试系统上执行命令,然后在测试完成后在生产系统上重复完全相同的命令。我很感激关于上述问题的任何建议。最好的问候,马顿
添加包含JPMS模块的依赖项后,maven-bundle-plugin(版本3.3.0)失败并显示:[INFO]---maven-bundle-plugin:3.3.0:bundle(default-bundle)@my-bundle---[ERROR]BundlemyGroup:my-bundle:bundle:1.0:Exception:java.lang.ArrayIndexOutOfBoundsException:19[ERROR]BundlemyGroup:my-bundle:bundle:1.0:Invalidclassfilemodule-info.class(java.
我正在尝试创建一个RCP应用程序,我想在其中绑定(bind)一个来自bean的变量以进行查看。bean的代码#publicclassSaveFileBeanimplementsPropertyChangeListener{privateStringtext;privatePropertyChangeSupportpropertyChangeSupport=newPropertyChangeSupport(this);@OverridepublicvoidpropertyChange(PropertyChangeEventarg0){propertyChangeSupport.fireP
我将STS(Spring工具套件)与EclipseLuna4.4一起使用,我注意到每次我尝试通过帮助->“安装新软件”我收到以下错误:Anerroroccurredwhilecollectingitemstobeinstalledsessioncontextwas:(profile=DefaultProfile,phase=org.eclipse.equinox.internal.p2.engine.phases.Collect,operand=,action=).Norepositoryfoundcontaining:osgi.bundle,org.eclipse.net4j.jms
我已经创建了一个JavaFX应用程序,并使用Ant创建了它的本地包。当我尝试使用通过双击创建的包中的Jar启动应用程序时,它成功启动了我的应用程序。但是,当我尝试双击MyApplication.exe(比如说)时,它会抛出JavaFX启动器错误“运行应用程序时出现异常”。两个jre我都对比过,jar、exe、dll和一些属性文件都少了很多。我有这些环境设置-JAVA_HOME--C:\ProgramFiles\Java\jdk1.7.0_10JREFX_HOME--C:\ProgramFiles\Oracle\JavaFX2.2RuntimePathcontainsanentryofC
我有一个带有此list的eclipse插件:...Bundle-ClassPath:.,lib/drools-api.jar,lib/drools-core.jar,...现在我们不想将drools-api.jar和drools-core.jar放在源代码管理中,所以我们使用插件从Maven存储库:org.apache.maven.pluginsmaven-dependency-plugincopy-bundle-classpath-libsvalidatecopylibtruetruetruetrueorg.droolsdrools-apiorg.droolsdrools-core.