1

我试图让我们的构建机器在签入时始终如一地构建我们的 Blackberry 项目(使用 Eclipse 插件而不是 JDE 构建)。我们正在使用 Jenkins 调用该项目,有时它可以工作,但只有在我在远端机器上的 Eclipse 中启动了该项目之后,然后重新启动会导致错误再次出现。

我得到的第一个错误是(以下错误都是相同的):

 [javac] c:\<path_to_project>\src\path\to\package\class.java:6: error: package net.rim.device.api.ui does not exist

以及对 net.rim.* 对象的所有其他引用。显然这是因为它没有链接到目标 net_rim_api.jar 文件,但我不知道到底出了什么问题。我尝试查看 build.xml 文件,但我得到更多错误,并且其他线程中此错误的其他版本结果不是一回事。

我已经尝试安装和使用 BB-Ant(大致遵循本教程),但它没有为我提供解决方案 - 我准备承认我在实施中可能犯了一个错误,但我尽可能地遵循它与我目前的项目。

我将不胜感激您能给我的任何帮助。

编辑

因此,我现在更改了要使用的项目,<rapc>而不是<javac>似乎为您链接到 .jar 的项目,但仍然令人沮丧的是,您不能简单地使用自动生成的 build.xml。这是 Eclipse 的一个已知问题(并且由于互联网上缺乏可用的信息,已被接受)吗?

4

1 回答 1

3

大约一年前,我走上了 BB Ant 构建脚本之路,在这个站点上得到了很多帮助,并试图在这个站点上记录我的进度。希望我放置的链接会对您和其他人有所帮助。

我将其标记为“社区 wiki”,因为它没有直接回答问题,但我认为它很有用。


基本算法

我在此页面上的回答显示了工作构建脚本的算法(BlackBerry:create COD from JAR source file in Ant script)。也许这比您要寻找的要复杂,但它确实显示了我发现的 javac 和 rapc 之间的关系。

总而言之,我想将我的 SDK 包含到最终构建中,步骤如下:

  1. javac SDK 创建 CLASS 文件

  2. 预验证 CLASS 文件

  3. jar SDK

  4. 将 SDK JAR 文件复制到项目中

  5. javac 项目 - 使用 SDK JAR 作为类路径

  6. 预验证项目 CLASS 文件(同样,在类路径中使用 SDK JAR)

  7. jar 项目 - 将 SDK JAR 添加为 zipfileset

  8. jarjar 此项目 JAR 以根据需要重构包名称

  9. 最后,在这个 JAR 上运行 rapc - 它不会发现重复的 COD 文件并且应该可以正常运行。

请阅读该页面上的其他答案,因为它们提供了我在最终结果中使用的很好的建议。


额外信息 & 在最终输出中包含一个 JAR

我推荐这个页面只是为了我在其中包含的额外链接 - 确切的问题是无关的(BlackBerry - Ant script to include JAR in project without external dependencies)。

同样,价值在于其他人提供的答案。


杂项

以下是我遇到的其他 BB 构建脚本问题的几个链接 - 您或其他人可能会发现它们很有用:

最后,在将您自己的代码编译到库中以导入不同的项目时,这说明了文档中的一个错误:

于 2013-01-30T21:39:37.070 回答