[英]How to Add custom JAR to the “eclipse-pmd” plugin?
從這里安裝了Eclipse PMD插件 (由Philip Graf編寫)。 我嘗試關聯自定義PMD規則類JAR但無法找到它的規定。 此JAR包含自定義規則類(間接extends AbstractJavaRule
)。
那么有沒有辦法配置eclipse-pmd插件來接受這個自定義JAR?
我的custompmd.jar
有這樣的結構:
custompmd.jar
└─com/ PMD /自定義
└─AvoidHardcodingRule.class
└─AvoidCatchWithoutLogErrorRule.class
└─etc...
簡單地將它放在plugins
目錄中沒有幫助。 其中一個問題提出了一個解決方案,但這是針對不同的 插件 。
[UPDATE]
我目前正在考慮編輯其中一個eclipse\\plugins\\ch.acanda.eclipse.pmd.BLAHBLAH.jar
,將custompmd.jar
添加到lib
文件夾中,並通過在JAR信息中附加JAR信息來更新META-INF\\MANIFEST.MF
文件。 Bundle-ClassPath:部分。 這是正確的做法,因為修補插件JAR對我來說似乎很丑陋嗎?
[UPDATE]
上述方法不起作用。
你們中的任何一個Eclipse大師都知道如何破解它?
[UPDATE]
我自己解決了這個問題。
[UPDATE]
雖然以下解決方案有效,但這是一場維護噩夢。 每當我更改custompmd.jar
,我每次都必須更新插件JAR,這很乏味。 有干凈整潔的解決方案嗎?
(我應該在我之前的嘗試中使用它,但是由於ANT任務失敗而導致custompmd.jar
過時,但是那段時間不起作用)。
一步步:
ch.acanda.eclipse.pmd.core_<blahblah#>.jar
從plugins
目錄復制到臨時目錄中。 custompmd.jar
添加到lib
目錄中。 META-INF/MANIFEST.MF
文件,在Bundle-Classpath:
末尾附加此字符串,lib/custompmd.jar
Bundle-Classpath:
/plugins/ch.acanda.eclipse.pmd.core_<blahblah#>.jar
並將其替換為此臨時jar。 如果將jar作為Eclipse插件片段添加到Eclipse安裝中,則可以使用自定義規則類。 插件片段的主機必須是ch.acanda.eclipse.pmd.core
。
要將jar轉換為插件片段,您必須修改文件MANIFEST.MF
文件並添加一些清單頭。 以下是Eclipse插件片段的完整清單:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Custom PMD Rules
Bundle-SymbolicName: org.example.customrules
Bundle-Version: 1.0.0
Fragment-Host: ch.acanda.eclipse.pmd.core;bundle-version="1.4.1"
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
您可以為標題Bundle-Name
, Bundle-SymbolicName
和Bundle-Version
選擇自己的值。 標頭Bundle-ManifestVersion
的值必須為2
。 Fragment-Host
必須包含主機包的符號名稱ch.acanda.eclipse.pmd.core
以及您已安裝的eclipse-pmd的版本。 Bundle-RequiredExecutionEnvironment
指定插件片段Bundle-RequiredExecutionEnvironment
的最小執行環境。 如果使用Java 8編譯它,則使用Java 7或JavaSE-1.8
編譯它的值為JavaSE-1.7
。
更改jar的清單后,可以將其復制到eclipse安裝的文件夾dropins
中。 啟動Eclipse時會安裝插件片段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.