maven可视化添加依赖_依赖可视化

maven可视化添加依赖

缺少链接,了解问题

导出到另一个基于Eclipse的应用程序后,您的自定义Eclipse插件或功能失败了多少次

在新环境中查找并满足所有插件依赖关系得到了简化。 过去,需要手动验证插件,但是如今,Eclipse的Dependency Visualization工具(属于Eclipse Incubator项目的一部分)消除或减少了这种必要性。 让我们详细研究该问题,查看可用的解决方案,并考虑可能的修改以简化插件依赖项分析任务。

OSGi,恩赐

Eclipse改变了Java?和其他语言程序员开发应用程序的方式,并促进了逐块创建大型应用程序。 尽管这不是一个新概念,但对所有开发人员来说,将所有依赖项清楚地包装在整齐的包装束中是一种幸福。

开放服务 关倡议(OSGi)的出现及其通过替换/添加/删除捆绑软件更新应用程序的优美机制创造了新的可能性。 现在,在客户端机器上更新基于Eclipse的应用程序与更新基于Web的应用程序一样普遍和简单。

问题

我们应该记住,要使整个更新机制正常工作,后台需要进行很多艰苦的工作。 我们知道任何基于Eclipse的应用程序都可以通过简单地将包放入适当的文件夹中来进行更新,但是依赖关系又如何呢您有多少次失去功能或遇到了可怕的Eclipse加载错误,却对发生的事情一无所知

在两种情况下可以看到此问题:

  • 第三方功能的安装-减少了缺少依赖项的可能性。 在最佳情况下,这些问题会在发布之前进行处理,但我们知道并非总是如此。
  • 功能的创建-Eclipse提供了许多API,许多程序员未能利用目标平台。 导出捆绑软件后,Eclipse安装失败。

罪魁祸首是未能识别和记录新功能的最小捆绑集(以下称为依赖项)。

我们最近在计划在其中一个项目中使用SWTBot测试工具时遇到了这种情况。 与其他自动化测试工具一样,SWTBot的一部分应位于要测试的应用程序(AUT)中,以使自动化工作。 如果使用Equinox P2更新功能将SWTBot功能安装到应用程序中,它将处理相关性。 但是,很多时候这是不可能的,例如,当应用程序未启用P2时。

没什么可担心的(尚未); 让我们进入下一部分。

(不太好)解决方案

我们可以通过以下两种方式合理地解决此问题:

  1. 启动应用程序时启动OSGi控制台
  2. 逐一搜索未解决的插件以查找其依赖项

如果幸运的话,您会收到一条简单的错误消息,例如“由于缺少必需的XYZ包而无法解析ABC包”。

如果没有,您将看到“由于缺少软件包XYZ而无法解析软件包ABC”,因为您必须确定哪个软件包导出了指定的软件包。

您不能使用命令来查找分发包,因为它仅在解决有问题的分发包时才起作用。 如果已解决,您将不会收到错误。

控制台方法增加了一个不利的方面。 考虑一种情况,这种情况在您端可以正常工作,但不能在用户没有足够技术来使用控制台的远程计算机上运行。 即使您有一个精明的用户,也不希望他们挠头并想知道开发人员的技能。

最后,基于Eclipse的应用程序通常使用自定义机制启动,例如在无法直接提供选项时使用自定义脚本。

考虑到这一点,让我们看一个更好的解决方案。

更好的解决方案

前面提到的背景工作并不总是那么困难。 我们宁愿聪明地工作,Eclipse Project可以帮助我们做到这一点。

Eclipse PDE项目–依赖关系可视化

注意 :用于显示依赖关系图的Dependency Visualization插件与Eclipse 3.5.X或更高版本一起使用。

设置和使用

  1. 使用Eclipse更新存储库功能安装功能。 转到“ 然后粘贴到http://download.eclipse.org/eclipse/pde/incubator/visualization/site中 。 取消选中“ 按类别分组项目”复选框。

    然后转到 ,或者按Ctrl + 3并选择Graph Plug-in Dependencies视图 , 如图1所示 。

    图1.图形插件依赖关系视图

  2. 右键单击并选择“ 聚焦于” 。 选择您要查看其依赖关系图的dropins下的插件。 在这里org.eclipse.emf.core

    三个依赖性分析工具已添加到控制面板。 通过选择捆绑包,可以突出显示此捆绑包的最短路径,所有路径和智能路径。 最短且所有路径都是不言自明的。 智能路径显示从直接需要的捆绑包到所选插件的所有最短路径。 图3显示了一个示例。

    图3.依赖关系的智能路径视图

  3. 搜索文本框可用于突出显示与特定字符串匹配的所有插件。 在这种情况下,所有包含字符串org.eclipse.mylyn的包都将突出显示。 图5显示了一个示例。
    图5.视觉搜索

  4. 预定义了几个缩放级别,这些缩放级别可通过视图的上下文菜单使用。 (参见图7。 )
    图7.设置缩放级别

  5. 查看选定插件的调用者和被调用者的选项如图9所示 。
    图9.显示呼叫者和被叫者

    单击“ 应用” ,所有未解决的捆绑软件列表应以红色显示在超链接下方。 图11显示了使用指定文件夹中最后一个包的依赖关系图检测到的32个错误。

    图11.显示未解决的包数

    其余功能,例如

    • 显示捆绑版本,
    • 显示依赖路径,
    • 显示被呼叫者,以及
    • 显示来电者,

    像以前一样工作

    告未解决的导入包错误

    一个束的依赖关系既可以下指定或下 MANIFEST.MF的部分。 仅当“必需的插件”和“导入的软件包”中提到的用于导出软件包的软件包可用时,该软件包才能完全解决。 Eclipse PDE项目仅 告缺少“必需插件”的错误,并跳过未解决的软件包。

    我们做了进一步的更改,以显示所选捆绑软件的未解决的导入软件包(具有版本范围)。 (参见图13。 )

    • 错误列表将首先包含所有缺少的“必需插件”,然后包含未解决的程序包。
    • 可选的导入将被跳过。
    图13.未解决的导入包错误

    屏幕截图显示了展开了错误列表的依赖关系图,其中显示了单个错误的列表

    请注意,在使用第3.2节中提到的功能时,对于指定文件夹中的所有插件,错误 告中只会 告丢失的“必需的插件”,而不是未解析的导入包。

    缺少的导入详细信息在单个插件级别提供,并且可以通过右键单击或在工具栏上使用“ 后退”和“ 前进”选项来查看。 可以进行进一步的更改以在文件夹级别包括此功能,并且可以进行扩展以生成全面的日志文件或仅通过控制台显示。

    在所有情况下,未解决的导入软件包将仅在错误 告中显示(链接为红色),而不在图形中显示,因为该工具不知道哪个插件将导出此未解决的软件包。

    同样,其余功能,例如

    • 显示捆绑版本,
    • 显示依赖路径,
    • 显示被呼叫者,以及
    • 显示来电者,

    像以前一样工作

    局限性和常见陷阱

    • 该工具仅提供插件依赖性分析,而不提供片段分析。
    • 它仅与活动目标平台中提到的其他插件一起验证特定插件。 该工具无法建议解决缺少的所需插件或未解决的导入的问题。
    • 该代码已使用IBM JRE 1.5版进行编译和测试。

    结论


    翻译自: https://www.ibm.com/developerworks/opensource/library/os-eclipse-dependencyvisualization/index.html

    maven可视化添加依赖

    文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树Java概览Maven基础91673 人正在系统学习中 相关资源:地摊叫卖广告软件 商场促销 文字转换声音 卖场叫卖语音广告制作

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月26日
下一篇 2020年5月26日

相关推荐