ali-other.xml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?xml version="1.0"?>
  2. <ruleset name="AlibabaJavaOthers" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
  5. <rule name="AvoidPatternCompileInMethodRule" language="java"
  6. message="java.other.AvoidPatternCompileInMethodRule.rule.msg"
  7. class="com.alibaba.p3c.pmd.lang.java.rule.other.AvoidPatternCompileInMethodRule">
  8. <description>java.other.AvoidPatternCompileInMethodRule.rule.desc</description>
  9. <priority>1</priority>
  10. <example>
  11. <![CDATA[
  12. public class XxxClass {
  13. // Use precompile
  14. private static Pattern NUMBER_PATTERN = Pattern.compile("[0-9]+");
  15. public Pattern getNumberPattern() {
  16. // Avoid use Pattern.compile in method body.
  17. Pattern localPattern = Pattern.compile("[0-9]+");
  18. return localPattern;
  19. }
  20. }
  21. ]]>
  22. </example>
  23. </rule>
  24. <rule name="AvoidApacheBeanUtilsCopyRule" language="java"
  25. message="java.other.AvoidApacheBeanUtilsCopyRule.rule.msg"
  26. class="com.alibaba.p3c.pmd.lang.java.rule.other.AvoidApacheBeanUtilsCopyRule">
  27. <description>java.other.AvoidApacheBeanUtilsCopyRule.rule.desc</description>
  28. <priority>1</priority>
  29. <example>
  30. <![CDATA[
  31. TestObject a = new TestObject();
  32. TestObject b = new TestObject();
  33. a.setX(b.getX());
  34. a.setY(b.getY());
  35. ]]>
  36. </example>
  37. </rule>
  38. <rule name="AvoidNewDateGetTimeRule" language="java"
  39. message="java.other.AvoidNewDateGetTimeRule.rule.msg"
  40. class="com.alibaba.p3c.pmd.lang.java.rule.other.AvoidNewDateGetTimeRule">
  41. <description>java.other.AvoidNewDateGetTimeRule.rule.desc</description>
  42. <priority>1</priority>
  43. <example>
  44. <![CDATA[
  45. public class TimeMillisDemo {
  46. public static void main(String args[]) {
  47. // Positive example:
  48. long a = System.currentTimeMillis();
  49. // Negative example:
  50. long b = new Date().getTime();
  51. System.out.println(a);
  52. System.out.println(b);
  53. }
  54. }
  55. ]]>
  56. </example>
  57. </rule>
  58. <rule name="AvoidMissUseOfMathRandomRule" language="java"
  59. message="java.other.AvoidMissUseOfMathRandomRule.rule.msg"
  60. class="com.alibaba.p3c.pmd.lang.java.rule.other.AvoidMissUseOfMathRandomRule">
  61. <priority>3</priority>
  62. <example>
  63. <![CDATA[
  64. Negative example:
  65. Long randomLong =(long) (Math.random() * 10);
  66. ]]>
  67. </example>
  68. <example>
  69. <![CDATA[
  70. Positive example:
  71. Long randomLong = new Random().nextLong();
  72. ]]>
  73. </example>
  74. </rule>
  75. <rule name="MethodTooLongRule" language="java"
  76. message="java.other.MethodTooLongRule.rule.msg"
  77. class="com.alibaba.p3c.pmd.lang.java.rule.other.MethodTooLongRule">
  78. <description>java.other.MethodTooLongRule.rule.desc</description>
  79. <priority>3</priority>
  80. </rule>
  81. <rule name="UseRightCaseForDateFormatRule" language="java"
  82. message="java.other.UseRightCaseForDateFormatRule.rule.msg"
  83. class="com.alibaba.p3c.pmd.lang.java.rule.other.UseRightCaseForDateFormatRule">
  84. <description>java.other.UseRightCaseForDateFormatRule.rule.desc</description>
  85. <priority>2</priority>
  86. <example>
  87. <![CDATA[
  88. Negative example:
  89. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  90. ]]>
  91. </example>
  92. <example>
  93. <![CDATA[
  94. Positive example:
  95. SimpleDateFormat format = new SimpleDateFormat("YYYY-mm-dd HH:mm:ss");
  96. ]]>
  97. </example>
  98. </rule>
  99. </ruleset>