外部构建无法找到导入

时间:2012-01-13 15:21:28

标签: java build-process eclipse-rcp

我正在研究Eclipse 3.6上的Eclipse RCP项目,该项目分为3个Java项目。

enter image description here

从底部开始,gov.bop.rabid.xxx.ui是RCP项目。另外两个Java项目包含在狂热的RCP项目中。

我已将这两个Java项目作为依赖项添加到我的狂犬病项目中。

enter image description here

enter image description here

当我在Eclipse中构建RCP产品时,所有内容都会构建并运行。

当我使用Eclipse产品导出向导时,我在logs.zip文件中收到以下错误消息:

# 1/13/12 9:02:45 AM EST
# Eclipse Compiler for Java(TM) 0.B61, 3.7.0, Copyright IBM Corp 2000, 2010. All rights reserved.
----------
1. ERROR in C:\BOPEclipse3.7RaBId\gov.bop.rabid.xxx.ui\src\gov\bop\rabid\xxx\ui\video\RabidVideo.java (at line 3)
    import gov.bop.eclipse.logging.EclipseLogging;
           ^^^^^^^^^^^^^^^
The import gov.bop.eclipse cannot be resolved

我知道这是某种依赖性错误,但我找不到我的RCP项目中的依赖项。

编辑添加:

这是Rabid产品依赖列表的第一部分:

enter image description here

其他两个工作区插件包含在依赖项列表中。

这是Rabid产品Eclipse运行配置插件列表的第一部分:

enter image description here

回答Tonny Madsen的问题(我很感兴趣):

  • gov.bop.eclipse logging是来自现有JAR Archive的Eclipse插件。
  • com.aware.photocomponent是现有JAR存档中的Eclipse插件。

这是包浏览器,打开目录:

enter image description here

此工作区有0个错误和0个警告。

2 个答案:

答案 0 :(得分:0)

您收到编译器错误,这意味着OSGi解析器对您的依赖项设置感到满意,否则您在使用未解析的依赖项进行编译之前就会失败。

我怀疑这与在项目中使用.class文件二进制文件而不是源.java文件有关。尝试将gov.bop.eclipse.logging/build.properties中的output..属性设置为包含带有.class文件的包的文件夹的路径(相对于项目根目录)。

如果这些是插件项目,您可以通过右键单击gov.bop.rabid.xxx.ui / META-INF / MANIFEST.MF文件并选择PDE来仔细检查将在产品导出期间使用的类路径工具 - >创建Ant构建文件。这将生成一个build.xml文件,您可以检查“@dot”目标以查看正在使用的类路径。

这种问题的其他一些原因(我在这里的情况并非如此)是:

  • 清单中的Bundle-ClassPath条目不正确。如果未指定,则默认值为“。”,这意味着.class文件位于二进制包的根目录中。
  • 在您的包中嵌套jar,一个jar取决于另一个jar,但没有定义编译这些jar的顺序(jars.compile.order)。

答案 1 :(得分:0)

当我删除gov.bop.eclipse.logging插件项目时,我终于能够构建Eclipse RCP包,并将gov.bop.eclipse.logging jar添加到gov.bop.rabid.xxx中。 ui classpath。

日志记录插件jar现在是ui插件jar的一部分。虽然这“工作”,如果我想更新日志插件jar,我必须更新ui插件jar。这不是一个优雅的解决方案,只是一种有效的解决方案。

看来这是您可以在Eclipse RCP包中包含外部Eclipse插件的唯一方法。我希望有人能证明我错了。