如何替换BndTools默认启动器并更改导出文件结构
我正在使用BndTools(http://bndtools.org/)来开发OSGI应用程序.一切都很好,但我想在导出我的应用程序时想要改变一些东西. 我正在努力实现两件事(我认为它们可能是相关的): 1:用自定义的BndTools启动器(aQute.launcher)替换默认的BndTools启动器(或者以.JAR格式) 如何摆脱或更改默认的BndTools启动器(aQute.launcher)到自定义的启动器? 我在这个主题上唯一能找到的就是:http://goo.gl/jYliih
原因是我需要我的应用程序接受命令args而不是干扰aQute启动器(就像所有-run args).另一方面,我想摆脱启动应用程序的批处理.bat / .sh方法,并使用单个.jar文件来启动应用程序. 那可能吗? 2:自定义导出的文件结构 默认情况下,BndTools在导出应用程序时会创建此文件结构: jar / – >这是OSGI jar包文件夹 aQute / – >默认的BndTools Launcher(Launcher.class里面) META-INF / – >为什么这里有META-INF文件夹?这不是JAR launcher.properties – >启动器属性 start.sh – >从此批处理文件中启动Launcher.class. start.bat /与JAR相比,这有什么好处? 基本上我想删除aQute,META-INF和启动.*文件并为二进制文件添加bin文件夹. 这应该可以用“Ant”,“Maven”或“Gridle”脚本来实现.但我可以创建一个没有BndTools支持的“BndTools项目”或“Gradle项目”.我安装了“BndTools Gradle插件”,但我找不到任何有关此主题的有用文档. 希望有人可以帮助我,或者指出我正确的方向. 最佳答案
(这个问题也在bndtools组列表中提出)
我有点困惑,因为你似乎已经获得了许可.您可以将bndrun文件导出到单个可执行JAR.在bndtools程序中,您可以通过获取Object服务然后获取“launcher.arguments”服务属性来访问命令行参数.这是给予启动器主方法的原始String [].
导出的JAR是可执行的JAR.可以通过JPM轻松地将其转换为本地可执行文件.
你可以从http://jpm4j.org/#!/md/install安装jpm. 罗伯特: 关于文件夹结构: 我需要我的捆绑包可以更新.如果我将所有捆绑包嵌入.Jar中,则无法更新它们.我只需要在外面捆绑包时启动Launcher. BndTools有两个导出选项. 1,您可以将整个启动器和所有捆绑包嵌入一个JAR中.或者选项2是将lib包放在lib目录中,并通过shell脚本(start.bat,start.sh)启动它们. 彼得: 从我的角度来看,当前的JAR导出(我实际上非常不喜欢目录导出,它很混乱)就像它获得的一样好.它有一个非常好的发布模型,只有一个易于版本和更新的文件.使用JPM,您可以在任何系统上安装它. 所以,如果你想要别的东西,你将不得不创建自己的出口商…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |