blob: f8635eb9b2cef1a0e8c1637bbc57851c923970bd [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= Статический анализ кода в редакторе Java IDE NetBeans
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Статический анализ кода в редакторе Java IDE NetBeans - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Статический анализ кода в редакторе Java IDE NetBeans
Ян Лагода (Jan Lahoda), Алена Сташкова (Alyona Stashkova)
В редакторе Java IDE NetBeans реализована новая функция статического анализа кода, которая является инструментом для поиска возможных ошибок и обнаружения несогласованностей в исходном коде.
В данном учебном курсе описано выполнение статического анализа кода Java с помощью FindBugs и подсказок Java NetBeans без непосредственного запуска приложений.
image::images/netbeans-stamp.png[title="Содержимое этой страницы применимо к IDE NetBeans 8.0"]
== Требования
*Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.*
|===
|Программное обеспечение или материал |Требуемая версия
|link:http://netbeans.org/downloads/index.html[+IDE NetBeans+] |Версия 8.0
|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработки приложений на языке Java+] (JDK) |Версия 7 и более поздние версии
|link:https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip[+library.zip+] |проект NetBeans
|link:http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar[+jsr305-2.0.0.jar+] |Запрос спецификации Java предназначен для улучшения эффективности инструментов статического анализа
|===
*Примечание.* Файл ``jsr305-2.0.0.jar`` включен в архив ``library.zip`` только для выполнения заданий данного практического руководства.
При работе с другими проектами NetBeans файл link:http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar[+jsr305-2.0.0.jar+] необходимо загрузить отдельно и добавить в папку 'Библиотеки' проекта в IDE следующим образом:
1. Щелкните правой кнопкой мыши папку 'Библиотеки' и выберите 'Добавить файл JAR/папку' во всплывающем меню.
2. В диалоговом окне 'Добавить файл JAR/папку' укажите путь к загруженному файлу ``jsr305-2.0.0.jar`` и щелкните 'Открыть'.
image::images/jar.png[]
== Установка среды учебного курса
Кроме требуемого программного обеспечения, перечисленного выше, необходимо установить на компьютер нижеперечисленные программы.
* Файл link:https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip[+library.zip+] необходимо разархивировать в папку проекта NetBeans и открыт в IDE NetBeans.
* Подключаемый модуль FindBugs необходимо загрузить и установить в IDE NetBeans следующим образом:
1. Выберите 'Источник' > 'Проверка' в главном меню IDE.
2. В диалоговом окне "Проверка" щелкните "Установить".
[.feature]
--
image::images/inspect-small.png[role="left", link="images/inspect.png"]
--
[start=3]
. В диалоговом окне 'Программа установки' щелкните 'Далее', чтобы продолжить установку.
[.feature]
--
image::images/plugin-small.png[role="left", link="images/plugin.png"]
--
[start=4]
. Прочтите лицензионное соглашение, выберите положение лицензионного соглашения и щелкните 'Установить'.
[start=5]
. По завершении установки нажмите кнопку "Готово".
== Использование заранее определенных настроек
При проверке кода в IDE NetBeans можно использовать заранее определенные конфигурации:
* <<all,Все средства анализа>>
* <<hints,Подсказки Java NetBeans>>
* <<fb,FindBugs>>
* <<default,По умолчанию>>
=== Выполнение всех средств анализа
Конфигурация ``Все средства анализа`` развертывает все инструменты статического анализа кода, доступные в IDE.
*Для запуска конфигурации ``Все анализаторы`` выполните следующие шаги:*
1. Выберите 'Источник' > 'Проверка' на главной панели инструментов IDE.
2. В раскрывающемся списке 'Область' диалогового окна 'Проверка' выберите ``Текущий проект (библиотека)`` .
3. В раскрывающемся списке 'Конфигурация' выберите конфигурацию ``Все средства анализа`` .
[.feature]
--
image::images/allconfig-small.png[role="left", link="images/allconfig.png"]
--
*Примечание.* Необходимо установить подключаемый модуль <<plugin,FindBugs>> для запуска этой конфигурации в первый раз.
[start=4]
. Нажмите кнопку "Проверить".
Результаты анализа отображаются в окне 'Инспектор' в представлении дерева слева.
[.feature]
--
image::images/all-small.png[role="left", link="images/all.png"]
--
Описание текущего выбранного результата в представлении дерева отображается справа.
[.feature]
--
image::images/alldescription-small.png[role="left", link="images/alldescription.png"]
--
*Примечание.* Если вы хотите оставить некоторую часть кода, которая описана в отчете как содержащая ошибки без изменений, IDE позволяет подавить предупреждения для этого кода, чтобы оставить его без изменений. Можно дважды щелкнуть предупреждение в представлении дереве в окне 'Инспектор', чтобы перейти в редактор исходного кода. Нажмите Alt-Enter, нажмите на черную стрелку, указывающую вправо в конце отображаемой подсказки и выберите ``SuppressWarning - _(имя предупреждения)_`` .
[.feature]
--
image::images/suppress-small.png[role="left", link="images/suppress.png"]
--
=== Проверка кода Java по подсказкам Java NetBeans
Конфигурация ``Подсказки Java NetBeans`` , доступная в IDE, позволяет проверить, удовлетворены ли заранее определенные правила стандартов написания кода рассматриваемым исходным кодом. Другими словами, он применяет набор подсказок Java NetBeans (также называется проверками кода) к исходным файлам Java.
*Для запуска конфигурации ``Подсказки Java NetBeans`` выполните следующие шаги:*
1. Выберите 'Источник' > 'Проверка' на главной панели инструментов IDE.
2. В раскрывающемся списке 'Область' диалогового окна 'Проверка' выберите ``Открыть проект`` (если имеется только одна ``библиотека`` проект будет открыт в среде IDE) or ``Текущий проект (библиотека)`` .
*Примечание.* Можно определить область (файлы. пакеты или проекты) для конфигурации ``Подсказки Java NetBeans`` .
[start=3]
. Выберите переключатель 'Конфигурация' и выберите ``Подсказки Java NetBeans`` в раскрывающемся списке.
[.feature]
--
image::images/hints-small.png[role="left", link="images/hints.png"]
--
[start=4]
. Нажмите кнопку "Проверить".
В среде IDE отображается представление дерева с результатами анализа с конфигурацией ``Подсказки Java NetBeans`` в окне 'Инспектор'.
image::images/hintsconfig.png[]
[start=5]
. В окне 'Инспектор' нажмите кнопку <<categorize,Категоризировать>> на панели инструментов слева для просмотра проблем, сгруппированных в категории.
image::images/catview.png[]
В следующей таблице перечислены команды, доступные в окне 'Инспектор'.
|===
|Значок |Имя |Функция
|image::images/refreshbutton.png[] |*Обновить* |Отображается обновленный список результатов статического анализа.
|image::images/upbutton.png[] |*Предыдущая проблема* |Отображается предыдущая проблема в списке результатов статического анализа.
|image::images/downbutton.png[] |*Следующая проблема* |Отображается следующая проблема в списке результатов статического анализа.
|image::images/categorizebutton.png[] |
*Категоризировать* |Переключение свернутого представления проблем, обнаруженных в файле, проекте или пакета или категоризированного представления всех обнаруженных проблем.
|===
=== Поиск возможных проблем в коде Java с помощью Findbugs
Конфигурация ``FindBugs`` , доступная в IDE, позволяет найти широкий диапазон возможных проблем в коде. Он вызывает популярный инструмент FindBugs для работы с открытым исходным кодом для анализа кода Java. Создается отчет об ошибках, и он отображается в окне реорганизации в IDE NetBeans, в котором разделяются по категориям все обнаруженные проблемы, и обеспечивается возможность навигации напрямую от ошибок в отчете к подозрительному коду. Также можно прочитать описание ошибок в смежном окне или просмотреть его на странице link:http://findbugs.sourceforge.net/bugDescriptions.html[+Описание ошибок FindBugs+] спомощью указателя в верхней части левого фрейма.
*Примечание.* Необходимо установить подключаемый модуль <<plugin,FindBugs>> для запуска этой конфигурации в первый раз.
*Для определения возможных ошибок в коде Java с помощью конфигурации ``FindBugs`` выполните следующие шаги:*
1. Откройте проект ``library`` в IDE NetBeans и выберите 'Исходный код' > 'Проверка' в главном меню.
2. В раскрывающемся списке 'Область' диалогового окна 'Проверка' выберите ``Текущий проект (библиотека)`` .
*Примечание.* Можно проверить файлы, пакеты или проекты с помощью конфигурации ``FindBugs`` .
[start=3]
. В диалоговом окне 'Проверка' выберите конфигурацию ``FindBugs`` .
[.feature]
--
image::images/fb-small.png[role="left", link="images/fb.png"]
--
[start=4]
. Щелкните кнопку 'Инспектор' для запуска статического анализа кода.
Результат статического анализа кода отображается в окне 'Инспектор' ниже редактора исходного кода.
Описание выбранной проблемы отображается в фрейме справа.
[.feature]
--
image::images/inspector-small.png[role="left", link="images/inspector.png"]
--
[start=5]
. В качестве альтернативы нажмите кнопку <<categorize,Категоризировать>> на панели инструментов слева для просмотра проблем, сгруппированных в категории.
image::images/fbcat.png[]
*Примечания*
* Если дважды щелкнуть проблему в развернутом списке, в IDE отображается указанная в отчете проблема в редакторе исходного кода.
Нажмите Alt-Enter для просмотра описания проблемы в исходном коде.
[.feature]
--
image::images/source-editor-small.png[role="left", link="images/source-editor.png"]
--
* Возможные проблемы выделены в коде значком восклицательного знака (image::images/exclamation.png[]) на левой границе редактора исходного кода.
*Для включения FindBugs в редакторе Java выполните следующие шаги:*
1. Выберите 'Сервис' > 'Параметры' на главной панели инструментов IDE.
2. Перейдите на вкладку 'Редактор' и выберите 'Подсказки'.
3. Выберите ``FindBugs`` в раскрывающемся списке 'Язык'.
[.feature]
--
image::images/fb-editor-small.png[role="left", link="images/fb-editor.png"]
--
[start=4]
. Выберите 'Выполнить FindBugs' в параметре 'Редактор'.
[start=5]
. Нажмите кнопку "ОК".
Если сейчас нажать Alt-Enter в исходном коде, где сообщается о проблеме, и щелкнуть черную стрелку в конце отображаемой подсказки, в IDE показываются некоторые варианты исправления возможных проблем.
[.feature]
--
image::images/fbenabled-small.png[role="left", link="images/fbenabled.png"]
--
=== Настройка конфигурации по умолчанию
Во время работы над кодом может потребоваться настроить заранее определенную конфигурацию, которая включает в себя собственные подсказки Java NetBeans или ошибки FindBugs.
*Для персонализации заранее настроенной конфигурации ``По умолчанию`` в соответствии с требованиями, выполните следующие шаги:*
1. Выберите 'Источник' > 'Проверка' на главной панели инструментов IDE.
2. В диалоговом окне 'Проверка' выберите переключатель 'Конфигурация' и выберите конфигурация ``по умолчанию`` .
3. Нажмите Управлять.
IDE отображает диалоговое окно 'Конфигурации'.
image::images/configurations-db.png[]
[start=4]
. Убедитесь, что в раскрывающемся списке 'Конфигурация' выбрано ``По умолчанию`` .
[start=5]
. В раскрывающемся списке 'Средство анализа' выберите средство анализа ``Соответствие профилей JRE 8`` , ``Подсказки Netbeans Java`` или ``FindBugs`` .
[start=6]
. В зависимости от выбранного средства анализа в предыдущем шаге выберите профиль, проверки или ошибки, которые необходимо включить в конфигурацию ``по умолчанию`` .
[.feature]
--
image::images/select-inspections-small.png[role="left", link="images/select-inspections.png"]
--
[start=7]
. Нажмите ОК, чтобы сохранить конфигурацию ``По умолчанию`` .
== Создание и удаление конфигурации
Пользователи могут создавать и удалять свои собственные конфигурации, которые будут использоваться в статическом анализе кода Java.
*Для создания конфигурации выполните следующие шаги:*
1. Выберите 'Источник' > 'Проверка' на главной панели инструментов IDE.
2. В диалоговом окне 'Проверка' выберите переключатель 'Конфигурация' и выберите конфигурация ``по умолчанию`` .
3. Нажмите Управлять.
4. В диалоговом окне 'Конфигурация' щелкните черную стрелку в конце раскрывающегося списка 'Конфигурация' и выберите 'Создать'.
image::images/newconfig.png[]
Создается конфигурация ``newConfig`` и добавляется в раскрывающийся список 'Конфигурации'.
image::images/newconfig-created.png[]
[start=5]
. В раскрывающемся списке 'Средство анализа' выберите ``Соответствие профилей JRE 8`` , ``Подсказки Netbeans Java`` или ``FindBugs`` .
[start=6]
. Укажите профиль, проверки или ошибки для включения в вашу конфигурацию.
[start=7]
. Нажмите ОК, чтобы сохранить правки и закрыть диалоговое окно 'Конфигурацию'.
Созданная конфигурация ``newConfig`` доступна в раскрывающемся списке 'Конфигурация' в диалоговом окне 'Инспектор'.
[.feature]
--
image::images/newconfig-inspect-small.png[role="left", link="images/newconfig-inspect.png"]
--
*Примечание.* Чтобы переименовать конфигурацию, выберите конфигурацию ``newConfig`` в раскрывающемся списке 'Конфигурация', щелкните черную стрелку в конце раскрывающегося списка 'Конфигурация' и выберите 'Переименовать'. Введите новое имя (например, ``renamedConfig`` ) и нажмите клавишу Enter, чтобы сохранить правки.
image::images/renamedconfig.png[]
*Для удаления конфигурации выполните следующие шаги:*
1. Выберите 'Источник' > 'Проверка' на главной панели инструментов IDE.
2. В диалоговом окне 'Проверка' нажмите переключатель 'Конфигурация' и выберите конфигурацию для удаления этом примере ``renamedConfig`` ).
3. Нажмите Управлять.
4. В диалоговом окне 'Конфигурации' щелкните черную стрелку в конце раскрывающегося списка 'Конфигурация' и выберите 'Удалить'.
image::images/delete.png[]
[start=5]
. В диалоговом окне 'Удалить конфигурацию' щелкните 'Да', чтобы подствердить удаление конфигурации.
image::images/delete-confirm.png[]
Конфигурация ``renamedConfig`` удалена из списка 'Конфигурации'.
*Примечание.* Lля получения информации о том, как создать модуль NetBeans, который предоставляет одну или несколько подсказок Java NetBeans см. link:http://platform.netbeans.org/tutorials/nbm-java-hint.html[+Учебный курс по модулю подсказок Java NetBeans+].
== Выполнение отдельных проверок
Исходный код можно проверить на наличие определенной проблемы в с помощью функции статического анализа в IDE NetBeans.
*Для выявления конкретного несоответствия или проблемы в исходном коде Java при выполнении одной проверки, выполните следующие шаги:*
1. Выберите 'Источник' > 'Проверка' в главном меню IDE.
2. В раскрывающемся списке 'Область' диалогового окна 'Проверка' укажите файл, пакет или проект(-ы), которые требуется проверить.
3. Выберите 'Отдельная проверка' и выполните одно из следующих действий:
* В раскрывающемся списке 'Отдельная проверка' с помощью прокрутки перейдите и выделите _одну_ подсказку Java NetBeans или проблему FindBugs, которые будут использоваться при анализе исходного кода.
[.feature]
--
image::images/single-inspection-small.png[role="left", link="images/single-inspection.png"]
--
* Щелкните 'Обзор', чтобы открыть диалоговое окно 'Конфигурации', и в раскрывающемся списке 'Средство анализа' укажите средство анализа, выберите профиль (для средства анализа Соответствие профиля JRE 8), _одну_ проверку (для средства анализа NetBeans Java Hints) и _одну_ ошибку (для средства анализа NetBeans Java Hints), которая будет использоваться в анализе исходного кода. Нажмите кнопку 'ОК', чтобы закрыть диалоговое окно 'Конфигурации'.
[.feature]
--
image::images/hint-inspection-small.png[role="left", link="images/hint-inspection.png"]
--
[start=4]
. В диалоговом окне 'Проверка' щелкните 'Проверка', чтобы выполнить анализ исходного кода.
После завершения операции 'Проверка', подсказки, которые могут быть применены к коду или проблемам, которые были найдены, отображаются в окне 'Инспектор' ниже редактора исходного кода.
== Заключение
В этом учебном курсе описываются наиболее распространенные варианты использования функции статического анализа кода в IDE NetBeans. Обратите внимание, что с помощью функции статического анализа кода можно также выполнять пользовательскую реорганизацию в контексте проекта или применять специальные настройки реорганизации к нескольким проектам, открытым в IDE, и т. п.
<<top начало>>
link:/about/contact_form.html?to=3&subject=Feedback:%20Static%20Code%20Analysis%20in%20NetBeans%20IDE[+Отправить отзыв по этому учебному курсу+]
== Дополнительные сведения
Связанные материалы можно найти в следующих документах:
* link:code-inspect-screencast.html[+Видеообзор функции статического анализа кода в IDE NetBeans+]
* link:http://wiki.netbeans.org/Java_Hints[+Полный список подсказок Java NetBeans+]
* link:http://wiki.netbeans.org/JavaDeclarativeHintsDescriptionSketch[+Описание декларативных подсказок Java NetBeans+]
* link:http://platform.netbeans.org/tutorials/nbm-java-hint.html[+Учебный курс по модулям подсказок Java NetBeans+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG613[+Использование подсказок при анализе и рефакторинге исходного кода+] в разделе _Разработка приложений с помощью NetBeans IDE_
<<top начало>>