gpt4 book ai didi

java - 如何使用 Maven2 在 ZIP 中捆绑多个模块和第 3 方 JAR?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:41 26 4
gpt4 key购买 nike

我正在使用 Maven 2 将我的应用程序开发为一组 OSGi 包。其他 OSGi 包使用了一些常用功能,例如日志记录、Web 服务器等,例如,我正在使用 Jetty 的 OSGi 版本.

我想在发布我的应用程序时包含所有第三方 bundle 和一个 OSGi 容器。我选择了Apache Felix作为我的默认容器。

我是 Maven 的新手,我不知道如何编写执行此操作的 POM 文件,并且在 Maven book 中找不到类似的示例.核心点似乎是多模块项目不会创建自己的工件。

它确实构建了我的包并将其打包到与 OSGI 兼容的 JAR 文件中(使用 maven-bundle-plugin )。现在我希望它也包装其他东西(不需要构建或任何东西,只需拉入并放入包中)并生成这样的 ZIP 文件:

+-Archive Root
|
+- /bundles
|
+- my.bundle1.jar
+- my.bundle2.jar
+- 3rd.party.bundle1.jar
+- 3rd.party.bundle2.jar
+- /conf
|
+- ... some config files ...
+- felix.jar

这样,我的用户可以下载 ZIP 文件,将其解压缩到一个目录,说“MyApp”,然后继续

# > java -jar /path/to/MyApp/felix.jar

一些关于细节的注释,如果它们重要的话:

  • 每个包都是一个公共(public)父项目的子项目,该项目没有自己的源代码,packaging 设置为“pom”,如书中示例所示。
  • 我决定不将 Felix 嵌入到一个中央包中(“托管框架”方法)
  • 我可能会为运行 OSGi 容器的客户提供另一种运输方式,其中只包含我自己的 bundle 。这可能是一个起点?

最佳答案

我花了一段时间(大约半天的文档阅读时间)才意识到我正在寻找的相当简单的答案是:

Use Maven Assemblies.

它们实际上让您可以将项目的工件和依赖项中的各种存档放在一起。

关于java - 如何使用 Maven2 在 ZIP 中捆绑多个模块和第 3 方 JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com