我正在尝试使用 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
header 更改为某个默认值。它可能正在改变其他我不想要的东西。我只希望它在根本没有 OSGi 信息的 jar 上运行。
有没有什么方法可以告诉 BND 忽略 list 中现有的 OSGi header ,或者忽略已经 OSGi 化的完整 jar?
最佳答案
我会将非 OSGi jar 存储在单独的文件夹中并修改 fileset
以仅处理该文件夹。
关于ant - BND Ant 任务 - 包装非 OSGi jar ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168919/