Если вы используете System.out | err.println (..), чтобы распечатать информацию о пользователе на консоли в главном() методе приложения, вы ничего не делаете неправильно. Вы можете избавиться от сообщения, вставив комментарий «// NOPMD».
System.out.println("Fair use of System.out.println(..).");// NOPMD
Для этой цели существует «Отметить как рассмотренный» -Общение в ПМД-Нарушениях.
Конечно, вы можете обмануть PMD с следующим фрагментом кода:
PrintStream out=System.out;
out.println("I am fooling PMD.");
за пределы вашего основной() - метод использовать Log-System, как, например, Log4j.
UPDATE:
Вы также можете изменить PMD-Rule "SystemPrintln" использовать следующий XPath:
//MethodDeclaration[@MethodName!="main"]//Name[
starts-with(@Image, 'System.out.print')
or
starts-with(@Image, 'System.err.print')
] | //Initializer//Name[
starts-with(@Image, 'System.out.print')
or
starts-with(@Image, 'System.err.print')
]
Это будет игнорировать System.out.println и т.д. в любом методе под названием ' main 'в вашем коде, но проверьте System.out.println в коде инициализации. Мне это нравится, потому что с моей точки зрения System.out.println безопасен в методе main (String args []) '. Но используйте с осторожностью, я должен проверить, где в АСТ может произойти также System.out.println и придется адаптировать XPath.
Также см. Недавний вопрос: http://stackoverflow.com/questions/2746578/advantage-of-log4j – BalusC