BND Ant任务包装非osgi jar



我正在尝试使用Ant bndwrap任务将非osgi jar包装在目录中。我当前的Ant配置是:

<target name="wrap-jars" description="Wrap non-OSGi jars">
    <taskdef resource="aQute/bnd/ant/taskdef.properties" classpath="${biz.aQute:bnd:jar}"/>
    <bndwrap output="${dist.dir}/app-modules">
        <fileset dir="${dist.dir}/app-modules" includes="*.jar" />
    </bndwrap>
    <move overwrite="true" todir="${dist.dir}/app-modules" >
        <fileset dir="${dist.dir}/app-modules" includes="*.bar" />
        <mapper type="glob" from="*.bar" to="*.jar" />
    </move>
</target>

这个工作得很好,但问题是它也包装了现有的OSGi jar,这会导致问题。例如,我注意到它将Bundle-SymbolicName头更改为一些默认值。它可能会改变别的东西,这是我不想要的。我只希望它能在没有OSGi信息的jar上运行。

是否有办法告诉BND忽略清单中现有的OSGi头,或完成已经OSGi化的jar ?

我会将非osgi jar文件存储在一个单独的文件夹中,并修改fileset以仅处理该文件夹

我注意到最近的bind版本(例如2.1.0)现在在重新包装OSGi jar时尊重Bundle-SymbolicName。

只需更改文件集以排除该jar

相关内容

  • 没有找到相关文章

最新更新