导出eclipse可部署插件和片段时出错
我有一个eclipse插件,可以在eclipse环境中正常工作 我想将它导出到一个jar文件中,所以我选择了导出>可部署插件和片段 我可以得到一个jar文件,但报告了一个错误 打开日志文件,它报告我有1242个问题(191个错误,1051个警告)。这是错误日志中的一些副本导出eclipse可部署插件和片段时出错,eclipse,eclipse-plugin,Eclipse,Eclipse Plugin,我有一个eclipse插件,可以在eclipse环境中正常工作 我想将它导出到一个jar文件中,所以我选择了导出>可部署插件和片段 我可以得到一个jar文件,但报告了一个错误 打开日志文件,它报告我有1242个问题(191个错误,1051个警告)。这是错误日志中的一些副本 2. ERROR in /Users/LSclipse/src/lsclipse/LSDiffRunner.java (at line 61) import edu.washington.cs.induction.
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个警告,但在EclipseIDE中编译插件时没有错误
补充
主项目引用了另外两个项目,并引用了许多外部库。我附加包视图和Java构建路径
在开发插件时,不能将第三方库添加到Java的类路径中。这是构建标准Java应用程序的方法,但插件是一种OSGi捆绑包,它具有 正确的方法是将第三方库添加到插件的类路径中 将以下声明添加到插件的MANIFEST.MF
Bundle-ClassPath: lib/log4j-1.2.7.jar,
xml-apis.jar,
...
查看这些链接以了解它。在开发插件时,不能将第三方库添加到Java的类路径中。这是构建标准Java应用程序的方法,但插件是一种OSGi捆绑包,它具有 正确的方法是将第三方库添加到插件的类路径中 将以下声明添加到插件的MANIFEST.MF
Bundle-ClassPath: lib/log4j-1.2.7.jar,
xml-apis.jar,
...
查看这些链接,以了解它。这是对潜在问题有疑问并认为是潜在问题的潜在解决方案
另外,您似乎将普通java应用程序的java构建路径配置与OSGI中运行的插件混淆了。OSGI中运行的插件不是通过java构建路径配置的,而是通过manifest.editor配置的。因此,根据经验,如果它是一个插件,那么由于OSGI不同,您甚至不必费心配置java构建路径,这可能也会引起问题这就是我们对潜在问题的潜在解决方案有疑问的地方
另外,您似乎将普通java应用程序的java构建路径配置与OSGI中运行的插件混淆了。OSGI中运行的插件不是通过java构建路径配置的,而是通过manifest.editor配置的。因此,根据经验,如果它是一个插件,那么由于OSGI不同,您甚至不必费心配置java构建路径,这也可能导致问题此问题涉及多个问题。然而,核心问题是项目
apimatching
和originanalysis
不是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构建路径/源选项卡中,我添加了这两个包含的项目作为源代码
现在我有了eclipse插件jar文件,没有错误
然后单击F-5刷新项目浏览器并检查它们是否为java src目录
选择“生成中包含的项目”选项卡
在build.properties选项卡中更新bin.include
和source..
非常重要。人们应该明白,在bin.include
中,排序也是至关重要的。lib/cdtparser.jar和lib/cdtcore.jar应该放在它们的用户之前-源代码分析/
复制包含的jar文件