2014-11-27 4 views
5

Я искал эту проблему через Google, но, оказывается, я не могу найти способ исправить эту проблему. На самом деле у меня есть классический метод main, в котором я запускаю задание, но sonarqube продолжает повторять, что найден найденный основной метод Uncommented.Как исправить метод Uncommented main?

Вот код:

 /** 
    * Main : Run MapReduce job 
    * 
    * @param args 
    *   arguments 
    */ 
    public static void main(String[] args) { 
     ExitManager exitManager = new ExitManager(); 
     // run job 
     if (!runJob(args)) { 
      exitManager.exit(1); 
     } 
    } 

Я не вижу никаких особых проблем здесь, так где же эта проблема взялась? Вы знаете, как я могу это исправить?

Спасибо.

+0

Это основной метод незакомментированной. Я не вижу никаких проблем. – robert

+0

Я не понимаю, как там без ранения? – hacks4life

+0

Читая ответы ниже, кажется, что это простое непонимание слова «комментарий». Подобно OP, я решил, что метод должен иметь комментарий, а не то, что он должен быть прокомментирован так, чтобы он не мог выполнить – Stewart

ответ

6

Некоммерческий основной метод является предупреждением CheckStyle о том, что метод main() не закомментирован. У вас не должно быть методов debug/test main() в вашем коде.

Вы можете исключить свой класс точки входа в программу, используя что-то вроде:

<module name="UncommentedMain"> 
    <property name="excludedClasses" value="\.Main$"/> 
</module> 

Смотрите также http://checkstyle.sourceforge.net/config_misc.html#UncommentedMain

+0

Итак, вы имеете в виду, что я должен прокомментировать весь основной метод, чтобы его нельзя было выполнить? – hacks4life

+0

Это зависит от того, является ли основная() проблемой точка входа в программу или метод отладки? Если это точка входа, вы можете исключить ее из проверки, см. Мое обновление. – Vlad

+0

Я вижу. Куда вы помещаете эти строки? Вы используете файл ant или что-то еще? – hacks4life

3

От documentation:

Проверяет незакомментированной основных() методов.

Обоснование: Метод main() часто используется для целей отладки. Когда отладка завершена, разработчики часто забывают удалить метод, который изменяет API и увеличивает размер результирующего класса или файла JAR. За исключением реальных точек входа в программу, все методы main() следует удалить или закомментировать из источников.

+0

Что делать, если моя программа действительно является точкой входа, и у меня все еще есть это предупреждение? :) – Line

0

Вы можете подавить предупреждение с @SuppressWarnings:

@SuppressWarnings("uncommentedmain") 
public class YourClass { 
    ... 
Смежные вопросы