如何解决要求:Import-Package:
How to resolve requirement: Import-Package:
此问题的范围适用于您按照下面链接的 Vogella 教程在 eclipse 中创建了一个 RCP 应用程序之后。这假定您的功能、产品和父项目已创建。在这种状态下,功能被委派了构建任务,因此所有依赖项都需要在功能 build.properties 文件中解决。
这个问题解决了何时需要安装缺少的依赖项,即手动下载,因为缺少的依赖项不在 class 路径上。 class 路径决定了 feature/included-plugins 选项卡中可用的插件。 feature/included 选项卡中列出的插件可以作为依赖插件添加到您的插件中。此列表附加到您的 feature.xml 文件,该文件链接到您的 build.properties 文件!请参阅下面的解决方案。
Eclipse 命名法交换了 plugins=dependencies 的概念,并且对它们一视同仁。我们通过选项卡的名称知道这一点。
这个问题的目的是使用现有的 Eclipse 功能开发一个 RCP 应用程序,该应用程序使用 objects 来自第三方插件来创建自定义工作流。
抛出此错误是因为我的 RCP 应用程序第三方插件需要此依赖项,而 Eclipse ICE 或插件本身均未包含此依赖项。
我尝试的第一件事是直接从 Eclipse Marketplace 安装插件。
字符串 org.apache.commons.beanutils 没有返回任何内容,所以我去 apache 手动下载了插件。
然后我研究了如何在 Eclipse 中手动安装插件。
我学会了不要简单地将插件放到 Eclipse/dropins 文件夹中,这样什么都不做。
我了解到可能由于 post 的年龄而缺少此建议。
我了解到当正确配置 Maven 时,所有依赖项都可以自动解决。
https://www.eclipse.org/forums/index.php/t/813199/
这表示通过查看四个文件解决了插件依赖关系。
"The plug-in definition, the product file, the run configurations and the target definition."
plug-in 定义我不确定 plugin.xml 文件以外的是什么。产品文件已配置为启动第三方插件。我了解到 run-configuration 有一个插件列表,但那里没有列出第三方插件。
我了解到应该在您的产品项目的 parent 项目中创建目标定义。
通过突出显示您的父项目->右键单击->新建->其他->目标定义来创建目标定义。创建期间 select "Use workspace configuration." 您下载的插件的路径已添加到此位置。
创建目标后,导航到内容选项卡并select管理使用:功能
这将可能的依赖项数量减少到只需要运行。
您现在应该会在列表中看到选中的依赖项。
创建目标解决了其他 20 多个依赖性错误,但标题下的那个仍然会引发错误。
我了解到产品文件是运行时间调用第三方插件的文件。
RCP 应用程序启动,但我无法在使用本教程创建的绑定 classes 中导入第三方插件,用于以编程方式获取 objects。
http://www.vogella.com/tutorials/EclipseRCP/article.html
我有一个 shell 的程序 运行ning,只需要为每个 window 实现 classes 和 objects 我可以从第三方插件导入获取。
谢谢,
(解)
感谢 Brian 重新调整了我的想法,这让我对 Eclipse 有了更多的了解以解决这个问题。
主要问题是外部 .jar 被识别为丢失 Import-Package。我的是 org.apache.commons.beanutils。您必须访问 parent 网站并下载该库。在本例中是 apache 的网站。通过回购可能有更好的方法来做到这一点。我希望我可以导出具有所有必需依赖项的产品:p
我可以在这里跳过一两步,但这些是我的工作步骤。
获取 .jar 到 Eclipse parent 项目中。右键单击 parent 和 select New->Folder->Name it Lib->Finish。右键单击 Lib->Import->File System->Navigate to .jar。突出显示包含的.jars->右键单击->构建路径->添加到构建路径。
将缺少的 .jar 添加到 Ant class 路径。 Ant 用于使用 OSGi 构建 PDE 应用程序。有关解释,请参阅 Eclipse 帮助。这将使您丢失的 jar 在功能项目 included-plugins 选项卡中可见。
Window->Preferences->Ant->Runtime->ClassPath Tab->Add jar->Navigate to missing jar
在您的 parent 项目中如上所述创建一个目标定义,并将缺少的 .jar 添加到目标中,并将目标设置为活动状态。
如果目标存在,在 Locations widget window->Click Add->Directory->Navigate to missing .jar.->Next-> Verify plugins are recognized in window->Finish。点击右上角设置为目标平台
在您的功能 child 项目中打开 feature.xml。 ->单击添加->导航到您添加的插件->单击确定
全部保存 - 启动产品
现在进入下一个依赖项!
听起来您将 Eclipse 插件与项目的 jar 依赖项混淆了。听起来您的项目需要一个 jar(来自 Apache 的 beanutils jar)。根据您的项目是使用 Maven 还是 ant(或其他东西),将它添加到您的项目的方式会有所不同。尝试使用谷歌搜索 "adding a jar in eclipse for a X build" 之类的内容,其中 X 是用于构建的工具(ant、maven 等)。无论您使用什么,最终目标都是让该 jar 在 Eclipse 中显示 java Build path->Libraries for your project。
在我看来,您需要更好地了解 OSGI/eclipse 中如何管理依赖项,因此我同意 BrianPipa。
注意:这个主题很大,不容易理解,而且太大了,无法在这里解释。但不要害怕,google 是你的朋友:
关于研究课题的几点建议:
- bundle/plugin和jar的关系
- 如何将插件中包含的代码导出(也称为可见)到其他插件以便他们可以使用它以及需要做什么才能使用插件(即声明使用依赖性)?
- 功能与插件有何关联?
- 产品与插件和功能有何关联?
- 什么是目标平台?
- 我该如何定义它以及它需要包含什么?
- 如何设置?
此问题的范围适用于您按照下面链接的 Vogella 教程在 eclipse 中创建了一个 RCP 应用程序之后。这假定您的功能、产品和父项目已创建。在这种状态下,功能被委派了构建任务,因此所有依赖项都需要在功能 build.properties 文件中解决。
这个问题解决了何时需要安装缺少的依赖项,即手动下载,因为缺少的依赖项不在 class 路径上。 class 路径决定了 feature/included-plugins 选项卡中可用的插件。 feature/included 选项卡中列出的插件可以作为依赖插件添加到您的插件中。此列表附加到您的 feature.xml 文件,该文件链接到您的 build.properties 文件!请参阅下面的解决方案。
Eclipse 命名法交换了 plugins=dependencies 的概念,并且对它们一视同仁。我们通过选项卡的名称知道这一点。
这个问题的目的是使用现有的 Eclipse 功能开发一个 RCP 应用程序,该应用程序使用 objects 来自第三方插件来创建自定义工作流。
抛出此错误是因为我的 RCP 应用程序第三方插件需要此依赖项,而 Eclipse ICE 或插件本身均未包含此依赖项。
我尝试的第一件事是直接从 Eclipse Marketplace 安装插件。
字符串 org.apache.commons.beanutils 没有返回任何内容,所以我去 apache 手动下载了插件。
然后我研究了如何在 Eclipse 中手动安装插件。
我学会了不要简单地将插件放到 Eclipse/dropins 文件夹中,这样什么都不做。 我了解到可能由于 post 的年龄而缺少此建议。 我了解到当正确配置 Maven 时,所有依赖项都可以自动解决。
https://www.eclipse.org/forums/index.php/t/813199/
这表示通过查看四个文件解决了插件依赖关系。
"The plug-in definition, the product file, the run configurations and the target definition."
plug-in 定义我不确定 plugin.xml 文件以外的是什么。产品文件已配置为启动第三方插件。我了解到 run-configuration 有一个插件列表,但那里没有列出第三方插件。
我了解到应该在您的产品项目的 parent 项目中创建目标定义。
通过突出显示您的父项目->右键单击->新建->其他->目标定义来创建目标定义。创建期间 select "Use workspace configuration." 您下载的插件的路径已添加到此位置。 创建目标后,导航到内容选项卡并select管理使用:功能
这将可能的依赖项数量减少到只需要运行。
您现在应该会在列表中看到选中的依赖项。
创建目标解决了其他 20 多个依赖性错误,但标题下的那个仍然会引发错误。
我了解到产品文件是运行时间调用第三方插件的文件。
RCP 应用程序启动,但我无法在使用本教程创建的绑定 classes 中导入第三方插件,用于以编程方式获取 objects。
http://www.vogella.com/tutorials/EclipseRCP/article.html
我有一个 shell 的程序 运行ning,只需要为每个 window 实现 classes 和 objects 我可以从第三方插件导入获取。
谢谢,
(解)
感谢 Brian 重新调整了我的想法,这让我对 Eclipse 有了更多的了解以解决这个问题。
主要问题是外部 .jar 被识别为丢失 Import-Package。我的是 org.apache.commons.beanutils。您必须访问 parent 网站并下载该库。在本例中是 apache 的网站。通过回购可能有更好的方法来做到这一点。我希望我可以导出具有所有必需依赖项的产品:p
我可以在这里跳过一两步,但这些是我的工作步骤。
获取 .jar 到 Eclipse parent 项目中。右键单击 parent 和 select New->Folder->Name it Lib->Finish。右键单击 Lib->Import->File System->Navigate to .jar。突出显示包含的.jars->右键单击->构建路径->添加到构建路径。
将缺少的 .jar 添加到 Ant class 路径。 Ant 用于使用 OSGi 构建 PDE 应用程序。有关解释,请参阅 Eclipse 帮助。这将使您丢失的 jar 在功能项目 included-plugins 选项卡中可见。 Window->Preferences->Ant->Runtime->ClassPath Tab->Add jar->Navigate to missing jar
在您的 parent 项目中如上所述创建一个目标定义,并将缺少的 .jar 添加到目标中,并将目标设置为活动状态。 如果目标存在,在 Locations widget window->Click Add->Directory->Navigate to missing .jar.->Next-> Verify plugins are recognized in window->Finish。点击右上角设置为目标平台
在您的功能 child 项目中打开 feature.xml。 ->单击添加->导航到您添加的插件->单击确定
全部保存 - 启动产品
现在进入下一个依赖项!
听起来您将 Eclipse 插件与项目的 jar 依赖项混淆了。听起来您的项目需要一个 jar(来自 Apache 的 beanutils jar)。根据您的项目是使用 Maven 还是 ant(或其他东西),将它添加到您的项目的方式会有所不同。尝试使用谷歌搜索 "adding a jar in eclipse for a X build" 之类的内容,其中 X 是用于构建的工具(ant、maven 等)。无论您使用什么,最终目标都是让该 jar 在 Eclipse 中显示 java Build path->Libraries for your project。
在我看来,您需要更好地了解 OSGI/eclipse 中如何管理依赖项,因此我同意 BrianPipa。
注意:这个主题很大,不容易理解,而且太大了,无法在这里解释。但不要害怕,google 是你的朋友:
关于研究课题的几点建议:
- bundle/plugin和jar的关系
- 如何将插件中包含的代码导出(也称为可见)到其他插件以便他们可以使用它以及需要做什么才能使用插件(即声明使用依赖性)?
- 功能与插件有何关联?
- 产品与插件和功能有何关联?
- 什么是目标平台?
- 我该如何定义它以及它需要包含什么?
- 如何设置?