我正在努力让一些自定义pmd规则到我们的SONAR服务器上,这样它们就会出现在我们的夜间测试中。我有一个xml文件,里面有一堆自定义规则,比如:
<rule class="net.sourceforge.pmd.rules.XPathRule" dfa="false" externalInfoUrl="" message="System.out.print is used" name="MyOrganisation_SystemPrintln" typeResolution="true">
<description>System.(out|err).print is used, consider using a logger.</description>
<priority>5</priority>
<properties>
<property name="xpath">
<value><![CDATA[
//Name[
starts-with(@Image, 'System.out.print')
or
starts-with(@Image, 'System.err.print')
]
]]></value>
</property>
</properties>
<example><![CDATA[
class Foo{
Logger log = Logger.getLogger(Foo.class.getName());
public void testA () {
System.out.println("Entering test");
// Better use this
log.fine("Entering test");
}
}
]]></example>
当我进入质量配置文件页面并制作一个新的配置文件时,给它一个xml文件,我会得到一大堆这样的错误:
无法自动导入PMD XPath规则“MyOrganization_SystemPrintln”。必须通过SonarQube web界面手动创建规则。
这似乎很清楚,但是当我试图通过复制已经存在的通用xpath规则并对其进行更改来创建新规则时,没有地方可以放置“示例”部分。(只有名称、消息、xpathQuery和描述)我想知道我是否遗漏了一些可能是原因的信息,以及如何将这些规则放到sonar服务器上?
非常感谢。
编辑:PMD版本是1.3,java插件也是
Edit2:另一个规则示例:
<rule class="net.sourceforge.pmd.rules.UnusedPrivateFieldRule" dfa="false" externalInfoUrl="" message="Avoid unused private fields such as ''{0}''" name="MyOrganisation_UnusedPrivateField" typeResolution="true">
<description>Detects when a private field is declared and/or assigned a value, but not used.</description>
<priority>5</priority>
<example><![CDATA[
public class Something {
private static int FOO = 2; // Unused
private int i = 5; // Unused
private int j = 6;
public int addOne() {
return j++;
}
}
]]></example>
</rule>
事实上,在自定义规则中不可能像在PMD自定义规则中那样声明示例,您必须将示例放入描述中,例如使用blockquote
元素。
那么,换句话说,为什么编译器不能在第二个方法中执行自动装箱呢?是因为在第二个方法中,绑定不是显式的,而在第一个方法中绑定是明确的。
问题内容: 我是Java新手,因此对以下示例感到困惑。可以认为“ ==”符号会比较 Intger 和 Int中“自动装箱” Integer 之间的值,并比较Integer之间的引用地址吗? 那么双打和0/0呢? 结果是: 问题答案: 出现时,取消装箱将会进行。 例如: 但是何时出现,取决于情况。 如果boxing type出现在,它将进行比较。但是,如果base type出现在,而另一侧是boxi
那么双打和0/0呢? 结果是:
规则 Sentinel 的理念是开发者只需要关注资源的定义,当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则: 通过 API 直接修改 (loadRules) 通过 DataSource 适配不同数据源修改 手动通过 API 修改比较直观,可以通过以下几个 API 修改不同的规则: FlowRuleManager.loadRules(List<FlowRule>
我正在使用drools fusion,我想根据实现的规则数测试这个cep系统的性能。现在,我有了一个简单的规则文件。drl扩展。我想动态生成大约1000条规则。那么,如何在不让他们在中创建一对一的情况下自动完成此操作呢。drl文件?
有没有一种方法可以通过使用集合名称变量来概括它