【问题标题】:Combining automatic and manual export package selection in Maven bundle plugin在 Maven 捆绑插件中结合自动和手动导出包选择
【发布时间】:2013-12-01 07:14:00
【问题描述】:

据我所知,Maven 包插件会自动将导出/导入包信息添加到您的包manifest.mf 文件中,根据它的来源。

有时您需要手动指定导出包,例如,如果您想添加 *.impl 包,maven-bundle-plugin 不会自动包含这些包。 但是如果您在<Export-Package> 标签中指定包,则不会执行自动导出。 如果我只有一个需要手动声明的包,而其他包可以通过此插件自动添加到 export-package 块。 所以我想使用自动生成的导出包清单并添加手动指定的包。

如何在使用手动时开启自动生成导出信息?

【问题讨论】:

    标签: java maven osgi bundle maven-bundle-plugin


    【解决方案1】:

    Export-Package 指令可以使用通配符。它获取类路径上的所有包,然后将 glob 表达式应用于此列表。所以你可以这样做:

      <Export-Package>com.example.myimpl.*, com.example.other.*</Export-Package>
    

    不建议使用 *,因为这将包括整个传递类路径。

    【讨论】:

    • 这是一个很好的功能。但这实际上不是我需要的。我可以通过通配符一次指定多个包,但保留自动生成的导出-导入信息无济于事。当我使用 Export-Package(即使使用通配符)时,aytomaticaly 生成的信息将被此标记中指定的包替换。
    • 我不确定我是否明白你想要什么
    • 如果不指定 标签,Maven Bundle Plugin 将根据项目依赖和代码中的类使用情况自动生成清单信息。如果您添加 标记,此信息将不会包含在清单中。
    • 我想我理解(我不喜欢 maven 的默认设置,所以永远不会使用它们,JAR 布局必须是有意识地设计的,而不是临时设计的)。无论如何,您也可以使用 -exportcontents,语法与 Export-Package 相同,但仅适用于计算清单。
    猜你喜欢
    • 2015-01-09
    • 2011-05-16
    • 2015-08-07
    • 1970-01-01
    • 2018-12-10
    • 2023-03-16
    • 2013-06-03
    • 1970-01-01
    • 2021-08-08
    相关资源
    最近更新 更多