[英]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.