Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSGI vs Maven哪一个是更好的打包工具_Maven_Osgi Bundle - Fatal编程技术网

OSGI vs Maven哪一个是更好的打包工具

OSGI vs Maven哪一个是更好的打包工具,maven,osgi-bundle,Maven,Osgi Bundle,我们有一个非常大的web应用程序,包含许多功能。现在为了维护,我们希望将应用程序拆分为组件,以便可以删除/添加特定组件(JAR)。因此,一个建议就是使用OSGI。我认为将罐子转换成捆绑包需要付出巨大的努力。我认为Maven也可以实现同样的功能。据我所知,OSGI是一种打包工具。如果我可以为每个组件制作Maven插件,那么任何特定的组件都可以在编译时被包含或删除,而不是像OSGI那样在运行时被删除。 使用Maven模块化应用程序将比OSGI更简单。我在这个网站上读过类似的帖子,它评论说OSGI和M

我们有一个非常大的web应用程序,包含许多功能。现在为了维护,我们希望将应用程序拆分为组件,以便可以删除/添加特定组件(JAR)。因此,一个建议就是使用OSGI。我认为将罐子转换成捆绑包需要付出巨大的努力。我认为Maven也可以实现同样的功能。据我所知,OSGI是一种打包工具。如果我可以为每个组件制作Maven插件,那么任何特定的组件都可以在编译时被包含或删除,而不是像OSGI那样在运行时被删除。
使用Maven模块化应用程序将比OSGI更简单。我在这个网站上读过类似的帖子,它评论说OSGI和Maven就像是在比较苹果和橙色。但我认为在某种意义上,两者都是相同的,因为它们都是用于打包的,区别在于一个用于运行时,另一个用于编译时

尽管答案是:)但我还是很期待

祝福
Shailesh

OSGI不仅仅是一个打包工具。可以说OSGI内部有一个打包工具。Maven是一个打包工具和依赖关系管理器。我想说的是,考虑到复杂程度和你所说的这项技术的用途,你可以选择Maven。

正如你已经暗示过的那样:你在拿苹果和橙色做比较

OSGi不是一个打包工具

OSGi捆绑包是纯JAR文件,清单文件中包含一些特定于OSGi的元数据

您可以使用Maven创建OSGi捆绑包,例如使用(我可以推荐这种方法)。因此,无论您是否使用OSGi,我强烈建议您使用Maven

以下是OSGi的一些用例:

  • 您希望创建不同版本的应用程序,例如针对不同的客户。使用OSGi,您只需添加/删除捆绑包,而无需接触任何其他配置
  • 您需要一个插件系统,以便第三方可以为您的应用程序提供插件
  • 您希望您的应用程序真正模块化
  • 您希望与其他应用程序共享一些代码,但希望隐藏一些内部类

OSGI和Maven就像苹果和橙子的比较“OSGI和Maven就像苹果和橙子的比较”,在这种情况下,苹果(Maven)比原来是柠檬的橙子要好。Maven实际上是一个竞争对手,也是对osgi的一个抑制因素,不管苹果、橙色的寓言是什么。Apple/orange allegory和osgi解决版本控制依赖性问题一样,都能解决这个问题。我同意你的回答,我不明白你说的“内部打包工具”是什么意思。OSGi捆绑包是纯JAR文件,清单文件中包含一些特定于OSGi的元数据。OSGi不是一个打包工具。它定义了捆绑包必须如何打包才能成为捆绑包,但它不是打包工具。@Puce是的,你确实是对的。更正确的说法是,OSGI以清单元数据的形式为jar遵从性规定了一些规则。但它无法像Maven那样为您创建包(即JAR),因此它本身不是一个工具。我同意Puce和包括您在内的其他人对我的问题的评论。我同意OSGi不能创建jar,而Maven可以。但在一个方面,两者是相同的。与OSGi通过包含不同JAR来打包应用程序一样,Maven也可以用来创建包含不同JAR的应用程序包。请阅读我之前的评论,我希望答案与下面的答案一致。“你们不认为下面的答案是对的吗?”沙伊莱什说不太对。请看我的评论。@Shailesh和我说过的:我建议另外使用Maven和OSGi(如果需要)。这不是非此即彼的问题。两者都可以使用。我知道OSGi和Maven的基本区别。OSGi是在运行时添加组件(捆绑包)的平台,而Maven是构建工具。请再看看我的问题。但我认为Maven可以比oSGi更简单地模块化应用程序。若我想将应用程序分解成独立的JAR,那个么通过Maven将更简单。我有一个使用Spring的web应用程序。Hibernate、Struts等,它会生成一场战争。现在我想模块化,这样一些模块就可以被排除,由此产生的WAR可以根据需要减少功能。因为马文会good@Shailesh你的评论是正确的,只是“更简单”部分令人困惑。无论您是否使用OSGi,您都希望将应用程序分解为单独的JAR,正如我所说的,在任何情况下都要使用Maven。你有什么问题?