【问题标题】:Exclude subdirectories from a bundle; Include-Resource at BND file从包中排除子目录; BND 文件中的包含资源
【发布时间】:2011-04-24 07:56:25
【问题描述】:

我正在尝试将 GWT Eclipse 项目放入 Bundle-Jar 文件中。 为此,我必须将 war 文件夹添加到包中。问题是 GWT 编译器将所有 *.class 文件添加到文件夹 war/WEB-INF/classes 中。 BND 尝试在 jar 文件中添加所有 *.class 文件,但它们在项目中的路径错误。那就是问题所在!因此,我在我的 BND 文件中寻找正确的 Include-Resource: 属性。

是否有人知道我可以从 Include-Resource 表达式中排除特殊文件。

如果我每次都删除 classes 子文件夹,它会起作用。但几秒钟后,GWT SDK 将生成此类。

非常感谢

塞巴斯蒂安

【问题讨论】:

    标签: gwt osgi


    【解决方案1】:

    请检查:http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html#ApacheFelixMavenBundlePlugin%28BND%29-Instructions:

    ...可以通过开始使用否定排除包 带有“!”的包装图案。因此, 非否定模式表示 要包含的可用软件包 捆绑,而否定模式 指出哪些不应该包括在内 在捆绑包中。

    您也可以查看此项目:“http://bitbucket.org/MikhailKotelnikov/projecttemplate”。它是一个简单的 OSGi/GWT 应用程序的模板。 在这里,我像往常一样编译/打包所有依赖于 GWT 的类,但我为 BND 工具添加了以下说明:

    DynamicImport-Package: *
    Import-Package: *;resolution:=optional 
    

    在这种情况下,BND 认为这些包将由 OSGi 环境在运行时提供,并且它正确地完成了工作。

    【讨论】:

    • 我实际上不鼓励使用这两条指令。 DynamicImport-Package 实际上会让你吸收框架中可用的任何包,而且它真的应该只在所有其他方法都失败时才使用。为您的导入添加分辨率是可选的同样棘手,在这里您说:“嘿,我可以在有或没有这些包的情况下运行,我的包会处理那个”当我怀疑在你的情况下,如果这些导入实际上不能已解决,代码将因找不到类异常而失败。
    猜你喜欢
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2018-04-01
    • 2021-07-25
    相关资源
    最近更新 更多