Задача Ant BND не создает пакет, содержащий какие-либо элементы - PullRequest
0 голосов
/ 11 августа 2011

У меня проблемы с созданием пакета после преобразования проекта maven в проект ant. Задача bnd ant создает test.jar, но файл содержит только META-INF. Проект eclipse называется testproj. Что мне не хватает? Кроме того, кто-нибудь знает место с большим количеством примеров задач bnd ant? Самому сайту bnd в этом отношении немного не хватает, особенно в том, как строить значения classpath.

<project name="testproj" basedir="." default="build">

<patternset id="project.deploy.jars">
    <include name="slf4j-api-1.6.1.jar" />
    <include name="logback-core-0.9.28.jar" />
    <include name="logback-classic-0.9.28.jar" />
    <include name="org.osgi.compendium-4.2.0.jar" />
    <include name="org.apache.felix.http.jetty-2.2.0.jar" />
    <include name="jcl-over-slf4j-1.6.1.jar" />
    <include name="mail-1.4.4-1.0.0.jar" />
    <include name="commons-io-2.0.1.jar" />
    <include name="commons-lang-2.6.jar" />
    <include name="commons-codec-1.5.jar" />
    <include name="commons-httpclient-3.1-osgi-1.0.0.jar" />
    <include name="bndlib-1.43.0.jar" />
    <include name="ojdbc5-osgi-1.0.0.jar" />
    <include name="joda-time-1.6.2.jar" />
    <include name="cxf-dosgi-ri-singlebundle-distribution-1.2.jar" />
</patternset>

<path id="bnd.classpath">
    <fileset dir="setup/external">
        <patternset refid="project.deploy.jars" />
    </fileset>
</path>

<target name="build" description="Build the bundle">

    <taskdef resource="aQute/bnd/ant/taskdef.properties"
        classpath="setup/dev/biz.aQute.bnd.jar"
        />

    <pathconvert property="bnd.classpath.string" pathsep=",">
        <path refid="bnd.classpath" />
        <mapper>
            <chainedmapper>
              <flattenmapper/>
              <regexpmapper from="(.*)" to="setup/external/\1" casesensitive="no"/>
            </chainedmapper>
        </mapper>
    </pathconvert>

    <echo>${bnd.classpath.string}</echo>

    <bnd 
      classpath="target/classes,${bnd.classpath.string}"
      eclipse="true" 
      failok="false" 
      exceptions="true" 
      output="test.jar"
      files="test.bnd"/>

</target>

</project>

test.bnd:
Import-Package:com.test.service, oracle.sql, oracle.jdbc, oracle.jdbc.driver, *
Export-Package:com.test.service
Service-Component:com.test.*

Ответы [ 2 ]

1 голос
/ 15 августа 2011

1) Вы смотрели на поддержку муравья, включенную в bndtools? Нил и я стараемся изо всех сил заставить bndtools работать в автономном режиме. 2) build.xml выглядит неправильно синтаксис муравья? Можете ли вы сделать небольшой пример и опубликовать правильные файлы? 3) bnd никогда не должен генерировать jar без файла MANIFEST.MF. Ошибка прогона?

Если вы не можете решить проблему, не стесняйтесь, присылайте мне zip-файл с настройкой, и я проверю, что происходит (и сообщу здесь).

0 голосов
/ 16 августа 2011

После получения справки от группы в Google Groups bndtools (которая является группой как для bndtools, так и для bnd), очевидно, проблема заключается в том, что файл .bnd не содержит заголовок Private-Package. Это используется для указания пакета реализации, поэтому сделайте его базовым для всех классов, которые вы хотите ввести.

После того, как я добавил его, все классы обнаружились, и компонент xml появился снова.

Спасибо за вашу помощь всем!

...