导出eclipse可部署插件和片段时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导出eclipse可部署插件和片段时出错相关的知识,希望对你有一定的参考价值。

我有一个eclipse插件在eclipse环境中正常工作。

我想将它导出到一个jar文件中,所以我选择了Export> Deployable插件和片段。

我可以得到一个jar文件,但报告了一个错误。

打开日志文件,它报告我有1242个问题(191个错误,1051个警告)。这是错误日志中的一些副本。

2. ERROR in /Users/LSclipse/src/lsclipse/LSDiffRunner.java (at line 61)
    import edu.washington.cs.induction.OnePipeLineScript;
           ^^^
The import edu cannot be resolved
----------
3. ERROR in /Users/LSclipse/src/lsclipse/LSDiffRunner.java (at line 261)
    OnePipeLineScript.getMatchingForRefFinder(projName, proj1, proj1Loc
    ^^^^^^^^^^^^^^^^^
OnePipeLineScript cannot be resolved

为什么我有错误?我有2049个警告,但是当我在eclipse IDE中编译插件时没有错误。

添加

主项目引用了另外两个项目,并引用了许多外部库。我附加了包视图和Java构建路径。

答案

这个问题涉及多个问题。然而,核心问题是项目apimatchingoriginanalysis不是eclipse插件而只是java项目。结果,这两个项目没有包含在最终的jar文件中以打破构建。

将两个项目符号链接到主项目中

我通过符号链接src目录到主eclipse插件项目中解决了这个问题。

ln -s /workspace/seal/edu.ucsc.originanalysis/src /LSclipse/originanalysis
ln -s /workspace/seal/edu.ucsc.apimatching/src /LSclipse/apimatching

从Java Build Path / Source选项卡中,我将这两个包含的项目添加为源。 Eclipse Java Missing required source folder: 'src'

现在我有eclipse插件jar文件没有错误。

然后单击F-5刷新项目资源管理器并检查它们是否是java src目录。

在Build选项卡中选择包含的项目。

在build.properties选项卡中更新bin.includesource..非常重要。人们应该明白,在bin.include中,排序也很重要。 lib / cdtparser.jar和lib / cdtcore.jar应该放在他们的用户之前 - origin analysis/

将包含项目的jar文件复制到主项目中

我还必须将这些项目文件中的一些jar文件复制到主项目中,然后在Binary Build选项卡中选择它们。

并在Runtime / Classpath选项卡中添加tim。

在执行环境中选择JavaSE-1.6。

我有很多“必须覆盖超类方法”错误。有了这篇文章的提示 - 'Must Override a Superclass Method' Errors after importing a project into Eclipse,我删除了J2SE-1.5来解决这个问题。

另一答案

在开发插件时,不能将第三方库添加到Java的类路径中。这是构建标准Java应用程序的方法,但插件是一种具有itself rule for class loading的OSGi包。

正确的方法是将第三方库添加到插件的类路径中。

将以下声明添加到插件的MANIFEST.MF中,

Bundle-ClassPath: lib/log4j-1.2.7.jar,
 xml-apis.jar,
 ...

检查那些链接 [1][2]以了解它。

另一答案

这是一个有问题并被视为潜在问题的潜在解决方案的问题。

  1. 这个类是来自引用的jar还是实际插件中的edu.washington.cs.induction.OnePipeLineScript;
  2. 您似乎有很多soure文件夹,并想知道您的build.properties文件是否显示任何警告,并且您还为build.properties源中的每个源文件夹定义了此文件。= src /
  3. 您的外部jar库似乎位于source类型的文件夹中,该文件夹不正确。它应该是一个非源文件夹(您可以通过包图标装饰器告诉源文件夹)并且您应该在清单编辑器中确保对于运行时您已经检查了lib,以便它包含构建中的jar。要将其取消标记为源文件夹,请在导航器视图中选择下拉菜单,转到过滤器并取消选中.resources然后将显示该文件中的.classpath文件,您将看到该文件夹​​为kind =“src”(我相信)删除。
  4. 不知何故,它看起来你也有链接的源文件夹这是我不建议的做法,我不确定这是否会导致插件导致问题。如果您可以避免链接的源文件夹更好。

此外,你似乎混淆了普通java应用程序的java构建路径配置,其中插件运行在OSGI中,而不是通过java构建路径配置但是你的manifest.editor所以作为一个经验法则,如果它的插件甚至不打扰试图配置java构建路径因为OSGI不同,这也可能导致问题

另一答案

在Options中选择“使用工作区中包含的类文件”对我来说很有用。

以上是关于导出eclipse可部署插件和片段时出错的主要内容,如果未能解决你的问题,请参考以下文章

将 GraphQL 片段与 Apollo Hooks 一起使用时出错

Eclipse 插件片段

为 Eclipse RCP 项目生成默认的 config.ini

[搬运] 将 Visual Studio 的代码片段导出到 VS Code

Eclipse OSGi 包需要另一个包的片段

在片段中创建自定义列表视图时出错。必需的活动,找到的片段