eclipse插件开发_开发Eclipse插件

eclipse插件开发

最近,我开始与一个团队合作开发Eclipse插件。 团队开发了一个很棒的插件,可以实现预期的目的。 因此,我检查了源并尝试构建它。 项目源包含所有必需的库,并且只能在Eclipse中构建。 在当今不断交付的世界中,这是一个主要障碍,因为无法在詹金斯上建立这样的项目。 该项目不仅包含必需的库,而且完整的eclipse设置也保留为源代码的一部分,因此我想先进行改进。 我在项目中创建了POM.xml并删除了设置和库。 构建工作正常,但是当我在Eclipse中打开项目时,情况一团糟。 那里什么都没有!

花了一段时间才意识到Eclipse和Maven是两个不容易融合的世界。 甚至最小的东西(如工件版本和Bundle版本)也不会轻易收敛。 在Maven中,任何东西都可以是版本,例如21快照。 但是在Eclipse中有一些标准,必须将其命名为[number]。[number]。[number] .qualifier,例如1.1.21.qualifier。

为了弥合两个世界之间的鸿沟,Sonatype已将Tycho贡献给了Eclipse生态系统。 将插件添加到eclipse存储库中:

<repository>
<id>juno</id>
<layout>p2</layout>
<url>http://download.eclipse.org/releases/juno</url>
</repository><plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-versions-plugin</artifactId>
<version>0.18.1</version>
</plugin><plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>0.18.1</version>
<configuration>
<pomDependencies>consider</pomDependencies>
<environments>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>

这里有几点要注意:

  • 如果该插件用于特定的Eclipse平台,则应添加该插件的存储库。
  • 该插件可以使用来自POM或MANIFEST.MF的依赖项。 如果从POM使用依赖项,则设置pomDependencies

Tycho插件还带来了一组用于版本更新,surefire测试等的插件。可以单独调用这些插件以执行不同的目标,例如,可以通过以下方式使用版本插件来设置版本:

mvn tycho-versions:set-version -DnewVersion=1.1.1-SNAPSHOT

这将在POM中设置1.1.1-SNAPSHOT版本,在MANIFEST.MF中设置1.1.1.qualifier。

尽管插件提供了很多功能,但也有一些限制。 插件无法为PDE生成正确的Eclipse设置。 因此,如果我们不保留这些设置,则需要再次生成这些设置。 插件页面上没有列出其他限制。

在此之后,我们现在已经能够在某种意义上弥合两个世界。 生成Eclipse插件的Maven构建是可能的。

插件类加载器

在Eclipse PDE中,有插件和片段。 插件是提供功能的完整模块,片段是将自身附加到父插件然后增强其功能的模块。 因此,插件可以附加n个片段,从而在运行时对其进行增强。

我们有一个基础插件,它提供了一些基本功能,并且在其上构建了一个片段以在插件中使用Hadoop1.x。 一段时间后,要求也支持Hadoop2.x。 现在,这两个库彼此不兼容。 因此,需要一些解决方法来实现此目的

幸运的是,基于OSGI的Eclipse与其他Java应用程序相比,具有不同的类加载机制。 通常,只有一个/层次结构类加载器可以加载整个应用程序。 现在,在这种情况下,如果将两个不兼容的jar捆绑在一起,则只会加载一个。 但是在eclipse中,每个插件都有自己的类加载器,可以加载自己的类。 现在,这提供了很多机会,例如支持同一库的不同版本。 此功能扩展到仅插件,而不是片段。 片段没有自己的类加载器,而是使用父插件类加载器。

我们本可以使用插件类加载器支持,但是hadoop库是按片段而不是插件加载的。 我们将片段转换为插件,这需要完成重构现有代码库的完整任务。 在基于hadoop 1.x的插件形成之后。 我们可以为hadoop 2.x制作更多插件。 每个插件都加载自己的一组类。 现在唯一的要求是拥有更多的PermGem空间,因为无法将完整的插件加载到默认的PermGem空间中。

翻译自: https://www.javacodegeeks.com/2014/07/developing-eclipse-plugins.html

eclipse插件开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中链式调用_Java及Android中常用链式调用写法简单示例

本文实例讲述了Java及Android中常用链式调用写法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;最近发现&#xff0c;目前大火的许多开源框架中&#xff0c;大多都使用了一种"(方法).(方法).(方法)"的形式进行调用&#xff0c;最典型的就是RxJava。android…

Java记录

https://openjdk.java.net/jeps/359概述了新的Java功能&#xff0c;该功能可能会/将在某些将来的Java版本中实现。 JEP建议使用一种新型的“班级”&#xff1a;记录。 JEP中的示例内容如下&#xff1a; record Range( int lo, int hi) { public Range { if (lo > hi) /* ref…

C什么k什么_K线图基础知识丨什么是K线散兵坑形态?K线散兵坑形态的操作与案例详解...

本文总共999字&#xff0c;预计阅读需要3分钟今天我们给大家带来的是K线散兵坑形态&#xff0c;那么K线散兵坑形态应该怎么来操作呢&#xff1f;今天我们就结合相应的实战案例来为大家讲解一下吧。K线散兵坑形态的简介散兵坑是指在股价缓慢上涨过程中.成交量也逐渐放大&#xf…

support v4官方下载_掌心长兴客户端下载-掌心长兴ap下载v4.1.4 安卓官方版

掌心长兴app是一款为广大用户开发的新闻资讯软件。在这里用户可以清晰的了解今日热点新闻&#xff0c;最新新闻直播电台应有尽有&#xff01;让你全方面了解周边新鲜事&#xff01;还有各种常用功能的代办查询服务。有需要的用户&#xff0c;欢迎现在下载体验哦掌心长兴客户端介…

java简单计算机程序_JAVA程序编的简单计算器程序??

1 文件名&#xff1a;Calculate_GUI。javaimport javax。swing。*;import t。Container;import t。event。*;public class Calculate_GUI extends JFrame{private JPanel p1;private JButton keyButton[]new JButton[16],signButton,clearButton,deleteButton;private JTextFie…

javafx 调用java_Java验证(javafx)

javafx 调用java验证是核心javafx框架所缺少的一件事。 为了弥补这一空白&#xff0c; controlsfx中已经存在一个第三方验证库 。 但是&#xff0c;我有一个问题&#xff1a;它不是在考虑FXML的情况下创建的。 这并不是说它不是一个很好的库&#xff0c;只是错过了这个细节&…

win10分辨率不能调整_Win10系统分辨率不能修改怎么办?屏幕分辨率的调节方法...

Win10系统电脑屏幕分辨率无法调节怎么办&#xff1f;电脑屏幕分辨率不能修改怎么办&#xff1f;近日有很多用户询问电脑显示器分辨率不能修改的问题&#xff0c;下面就给大家分享解决方法。解决方法&#xff1a;1、在win10系统桌面空白处单击鼠标右键&#xff0c;在弹出的菜单中…

java springmvc权限校验_详解Spring MVC使用Filter实现登录及权限验证判断

登录和权限验证判断在后台管理系统中是最常用的功能&#xff0c;这部分代码是比较固定和独立的&#xff0c;为了减少对业务代码入侵性&#xff0c;一般我会考虑使用Filter来实现&#xff0c;下面我就来详细说一下我的实现思路和代码&#xff1a;前台页面&#xff1a;String pat…

笔记本电脑电源已接通未充电_dell xps15 电源已接通 未充电 维修方法

&#xff08;去年写的文章&#xff0c;在知乎也存一份&#xff09;网上类似的文章很多&#xff0c;这里总结一下&#xff0c;这个问题按照严重程度可以分为四个层次&#xff1a;电源计划问题&#xff0c;大部分百度出来说的都是这个&#xff0c;实际上这个问题 等于没有问题。改…

cors spring_Spring,REST,Ajax和CORS

cors spring假设您正在为客户端开发基于JavaScript的项目&#xff0c;并且他通过其余的Web服务向服务器发出ajax请求&#xff0c;那么您可能会遇到一些麻烦&#xff0c;尤其是如果双方都在单独的域中。 实际上&#xff0c;出于安全原因&#xff0c;从一个域A到另一域B的Ajax请…

mysql bc_正则表达式——MySQL搜索过滤

正则表达式介绍在数据库的数据过滤过程中只用WHERE子句和LIKE操作符都是对于已知值进行的不管是匹配一个还是多个值&#xff0c;测试大于还是小于已知值&#xff0c;或者检查某个范围的值&#xff0c;都是使用已知的值当然MySQL语句也提供了通配符百分号(%)和下划线(_)来匹配多…

everything安装版和便携版有什么区别_A2奶粉内幕:国行版和澳洲版有什么区别 贵的不一定好!...

点击上方蓝字 关注我们申明&#xff1a;此文章来自第三方平台&#xff0c;绝无倾向性诱导。二桐粑粑转载分享。A2是全球首款添加了“A2-β酪蛋白”的奶粉&#xff0c;由新西兰A2公司于2013年推出&#xff0c;这款奶粉在澳洲一上架&#xff0c;就被妈妈们一扫而空。之后A2公司针…

哈希杰森

我最近写了一个简单的库&#xff0c;可预测地对json进行哈希处理 。 该实用程序基于出色的Jackson Json解析库构建 问题 我需要从相当大的基于json的内容生成的哈希值&#xff0c;以便稍后确定内容是否发生了更改。 将json视为字符串不是格式化的选项&#xff0c;键改组可能会…

java 什么时候用递归_如果要用Java实现算法,一定慎用递归

现象 &#xff1a;递归是我们很经典的一种算法实现&#xff0c;可以很好的描述一个算法的原理&#xff01;对于算法的描述、表现和代码结构理解上&#xff0c;递归都是不错的选择&#xff01;但是本文想说的是java实现一个递归算法的时候尽量不要用递归实现&#xff0c;而是转换…

excel分两个独立窗口_Excel2010 多个独立窗口,解决单窗口无法显示多个文件的问题...

当我们需要编辑多个excel的时候&#xff0c;就会发现一个问题&#xff0c;Excel不能一个窗口下显示多个文档&#xff0c;每次编辑都进行切换就太麻烦了&#xff0c;那如何能解决这个问题呢&#xff1f;接下来跟我一起看看吧&#xff01;首先在开始菜单输入regedit.exe命令&…

jsp代码会被翻译成java代码吗_JAVA jsp技术

JSP的本质是一个类文件&#xff0c;它存储于tomcat(如果你使用tomcat)目录下的work文件夹中&#xff0c;该类文件继承了HttpJspBase类&#xff0c;而HttpJspBase类继承了HttpServlet类&#xff0c;所以其实质是一个servlet的类文件JSP脚本&#xff1a;1) ----- 内部的java代码翻…

excel冻结窗口_excel怎么冻结窗口?excel冻结窗口怎么设置?

excel冻结行或列的技巧教程&#xff1a;一、冻结第一列1.选择 视图 > 冻结窗格 > 冻结第一列。2.列A和列B之间出现的细线表明第一列已冻结。二、冻结前两列1.选择第三列。2.选择 查看 > 冻结窗格 > 冻结窗格。三、冻结列和行1.选择要在滚动时保持可见的行下方和列右…

java 判断对象是否是xml格式_java对象与xml格式之间的转换

java对象是可以直接与xml相互转换的&#xff0c;但需要导入包&#xff1a;xstream-1.3.1.jar&#xff0c;在创建对象的时候&#xff0c;注意一定要new一个DomDriver&#xff1b;成功的测试代码如下&#xff1a;package com.xml; import com.thoughtworks.xstream.XStream; impo…

复合主键 复合外键_复合双重错误

复合主键 复合外键总览 在上一篇文章中&#xff0c;我概述了为什么BigDecimal大部分时间都不是答案。 尽管可以构造double会产生错误的情况&#xff0c;但在BigDecimal遇到错误的情况下构造情况也一样容易。 BigDecimal更容易正确&#xff0c;但更容易出错。 轶事证据表明&…

web service接口_win7 添加环回网卡+H3C 模拟器 防火墙开启Web功能

1、按下win R键&#xff0c;在其中输入&#xff1a;hdwwiz&#xff0c;然后点击“确定”或者按回车键&#xff0c;打开“添加硬件”对话框。2、看到如下界面时&#xff0c;选择“网络适配器”(如下图所示)&#xff0c; 在接着出现的界面中&#xff0c;左方“厂商”一栏里选择“…