首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant BND任务不生成包含任何项目的包

Ant BND任务不生成包含任何项目的包
EN

Stack Overflow用户
提问于 2011-08-12 03:30:47
回答 2查看 1.5K关注 0票数 0

在将maven项目转换为ant项目后,我在生成包时遇到了问题。bnd ant任务创建test.jar,但该文件只包含META-INF。eclipse项目名为testproj。我遗漏了什么?另外,有没有人知道有更多的bnd ant任务示例?bnd站点本身在这方面有点欠缺,特别是在如何构建类路径值方面。

代码语言:javascript
复制
<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.*
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-16 21:54:06

在Google Groups bndtools (这是一个同时用于bndtools和bnd的组)小组的帮助下,问题显然是.bnd文件不包含Private-Package头。这用于指定实现包,因此使其成为您想要引入的所有类的基包。

在我添加它之后,所有的类都出现了,并且组件xml再次出现。

感谢大家的帮助!

票数 0
EN

Stack Overflow用户

发布于 2011-08-15 22:39:27

1)您看过bndtools中包含的ant支持了吗?Neil和我特意让bndtools在离线模式下运行。2) build.xml看起来不是正确的ant语法?你能做一个小例子并发布适当的文件吗? 3) bnd不应该在没有MANIFEST.MF文件的情况下生成jar。运行是否有错误?

如果您不能解决这个问题,请随时给我发送一个带有安装程序的zip文件,我将检查发生了什么(并在此处报告)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7031711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档