Я пытаюсь создать оболочку OSGi для новейшей версии jTDS. Я пытаюсь добавить процесс упаковки в существующий процесс сборки 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, она должна создавать JAR с правильным манифестом OSGi. Он создает еще один 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?