2014-10-09 46 views
3

我試圖用一個片段插件補丁應用到現有的插件,如下所述:如何使用fragment插件修補eclipse插件並將其部署到我的eclipse產品中?

Steps to use Fragments to patch a plug-in - Eclipsepedia

補丁到主機的插件包括用更新的類文件替換一個類文件。但我沒有看到修改主機包清單設置步驟5)到11)中的概念。這裏它指示你修改主機插件。我認爲整個想法是,您不必觸摸主機插件 - 您部署的片段添加了補丁程序?

我的產品由Eclipse平臺和org.eclipse.cdt功能,再加上使用CDT我自己的插件。它是我想修補的org.eclipse.cdt.core插件。

我已經按照在Eclipse維基的步驟,並創建了一個包含我想在主機插件補丁包和類我的片段項目。我在maven中構建了這個,當我運行這個產品時,我看到我的分段插件是活動的,但它包含的類沒有被調用;原來的主機插件類是。

我猜問題是,被修飾的宿主插件是不是在我的產品部署。關於部署主機插件的建議,片段指南中沒有包含任何步驟,我不知道如何/爲什麼這是必要的。 (我已經在過去成功地使用了一個功能補丁,但只使用PDE創建 - 我無法獲得我的功能補丁在maven下生成 - 這就是爲什麼我正在探索使用看看我是否可以讓它們在maven下編譯。)

更新*:我使用Tycho插件創建我的版本到Maven Tycho - Building Eclipse plug-ins with maven

感謝您鏈接到「OSGi Core Release 5 Specification」。這是有用的閱讀。

所以,如果我的理解是正確的片段僅能覆蓋其類在主機插件的如果主機插件已經「準備」與一個片段進行修補。這涉及修改主機插件的清單。具體來說: 1.添加一個新庫並將其移動到'。'之上。包。從構建特性中移除這個庫;該庫只是一個參考,不應該由主機插件創建。 +添加Eclipse-ExtensibleAPI:對manifest.mf文件爲true +撞擊版本號。

在我看來,如果我想用一個片段修補org.eclipse.cdt.core插件,我將不得不提供準備好的org.eclipse.cdt.core插件版本以及我的片段插件。

*:回答禮儀時不確定;沒有足夠的聲譽去做很多事情。評論框只接受少量的字符。

+0

肯定需要包含修改後的主機插件。因爲我不使用maven,我不知道你會怎麼做。 – 2014-10-10 07:40:51

+0

我認爲你是對的。但是,我確實設法使用片段來修補SWT(https://www.eclipse.org/swt/faq.php#specifyxulrunner),而無需修改主機插件。我期望這是因爲SWT插件已經預計會被修補? – betamax 2014-10-17 10:02:07

回答

相關問題