0

我正在尝试为最新版本的 jTDS 创建一个 OSGi 包装器。我正在尝试将包装过程添加到现有的 jTDS 构建过程(基于 Ant)。我已经下载了最新的 bnd.jar 并将以下内容添加到 jTDS build.xml:

<taskdef resource="aQute/bnd/ant/taskdef.properties" classpath="bnd.jar"/>
<bndwrap trace="true" definitions="${basedir}/bnd" output="${build}/${ant.project.name}-${version}.osgi.jar">
    <fileset dir="${build}" includes="*.jar"/>
</bndwrap>

我还定义了一个非常简单的 bnd 定义:

version=1.2.6
Export-Package: net.sourceforge.jtds*;version=${version}
Bundle-Version: ${version}
Bundle-Name: net.sourceforge.jtds

当我dist在 Ant 中执行任务时,它应该使用正确的 OSGi 清单创建一个 JAR。它正在创建另一个 JAR,但清单与原始 JAR 相同。

如果我直接对 bnd JAR 执行相同的包装:

java -jar bnd.jar wrap -p bnd\jtds-1.2.6.bnd -o build\jtds-1.2.6.osgi.jar build\jtds-1.2.6.jar

我得到了正确的 OSGi 清单。

Ant 构建期间出了什么问题?

4

1 回答 1

0

最新版本的 bnd 似乎有问题,可在此处找到。Ant WrapTask 进行了一些重组,但似乎无法正常工作(可能只是配置错误;文档没有跟上代码的步伐)。

我改为使用 1.50.0 版本,通过 bnd.jar 和 Ant,一切都按预期工作。

于 2012-10-23T14:14:40.413 回答