blob: aa390b6d59a1e62d4a3239539e311d009e8d22a7 [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.
//
= Static Code Analysis in the NetBeans IDE Java Editor
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:syntax: true
:icons: font
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Static Code Analysis in the NetBeans IDE Java Editor - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Static Code Analysis in the NetBeans IDE Java Editor
:experimental:
The NetBeans IDE Java Editor has a static code analysis feature, which is a tool for finding potential problems and detecting inconsistencies in your source code.
In this tutorial, you will learn how to perform static analysis of your Java code using NetBeans Java Hints without actually running your applications.
== Requirements
*To complete this tutorial, you need the following software and resources.*
|===
|Software or Resource |Version Required
|link:https://web.archive.org/web/20131021173103/https://netbeans.org/project_downloads/samples/Samples/Java/library.zip[library.zip] |NetBeans project
|===
== Setting Up the Tutorial Environment
In addition to the required software listed above you should have the following installed on your computer:
* The link:https://web.archive.org/web/20131021173103/https://netbeans.org/project_downloads/samples/Samples/Java/library.zip[library.zip] file should be unzipped into your NetBeans project folder and opened in the NetBeans IDE.
== Using Predefined Configurations
You can use the following predefined configurations when inspecting your code in the NetBeans IDE:
* <<all,All Analyzers>>
* <<hints,NetBeans Java Hints>>
* <<default,Default>>
[[all]]
=== Running All Analyzers
The ``All Analyzers`` configuration deploys all static code analysis tools available in the IDE.
*To run the ``All Analyzers`` configuration, complete the following steps:*
. Choose Source > Inspect from the main IDE's toolbar.
. In the Scope drop-down list of the Inspect dialog box, select ``Current Project (library)`` .
. In the Configuration drop-down list, select the ``All Analyzers`` configuration.
[.feature]
--
image::images/allconfig-small.png[role="left", link="images/allconfig.png"]
--
[start=4]
. Click Inspect.
The results of the analysis are displayed in the Inspector Window as a tree view on the left.
[.feature]
--
image::images/all-small.png[role="left", link="images/all.png"]
--
The description of the currently selected in the tree view finding is displayed on the right.
[.feature]
--
image::images/alldescription-small.png[role="left", link="images/alldescription.png"]
--
NOTE: If you want to leave some part of your code that is reported as problematic as is, the IDE allows you to suppress the warning for this code to leave it without any changes. You can double-click a warning in the tree view of the Inspector Window to go to the Source Editor. +
Press kbd:[Alt+Enter], click the black arrow pointing to the right at the end of the displayed hint, and choose ``SuppressWarning - _(warning name)_`` .
[.feature]
--
image::images/suppress-small.png[role="left", link="images/suppress.png"]
--
[[hints]]
=== Verifying Java Code against NetBeans Java Hints
The ``NetBeans Java Hints`` configuration available in the IDE enables you to verify if the predefined coding standard rules are satisfied by the source code under consideration. In other words, it applies a set of NetBeans Java Hints (also known as code inspections) to your Java source files.
*To run the ``NetBeans Java Hints`` configuration, complete the following steps:*
. Choose Source > Inspect from the main IDE's toolbar.
. In the Scope drop-down list of the Inspect dialog box, select ``Open Projects`` (if you have only one ``library`` project open in the IDE) or ``Current Project (library)`` .
NOTE: You can define a scope (a file, package, or project(s)) for the ``NetBeans Java Hints`` configuration.
[start=3]
. Select the Configuration radio button and choose ``NetBeans Java Hints`` in the drop-down list.
[.feature]
--
image::images/hints-small.png[role="left", link="images/hints.png"]
--
[start=4]
. Click Inspect.
The IDE displays the tree view with the results of the analysis with the ``NetBeans Java Hints`` configuration in the Inspector Window.
image::images/hintsconfig.png[]
[start=5]
. In the Inspector Window, click the <<categorize,Categorize>> button in the toolbar on the left to view the problems grouped into categories.
image::images/catview.png[]
The following table displays the commands available in the Inspector Window.
|===
|Icon |Name |Function
a|image:images/refreshbutton.png[] |*Refresh* |Displays a refreshed list of the static analysis results.
a|image:images/upbutton.png[] |*Previous Problem* |Displays the previous problem in the list of the static analysis results.
a|image:images/downbutton.png[] |*Next Problem* |Displays the following problem in the list of the static analysis results.
a|image:images/categorizebutton.png[] |
*Categorize* |Toggles the collapsed view of the problems detected in a file, project, or package or the categorized view of all the detected problems.
|===
[[default]]
=== Customizing a Default Configuration
While working on your code you may need to customize a predefined configuration that includes your own NetBeans Java hints or FindBugs bugs.
*To tailor a predefined ``Default`` configuration to your own needs, complete the following steps:*
. Choose Source > Inspect from the main IDE's toolbar.
. In the Inspect dialog box, select the Configuration radio button and select the ``Default`` configuration.
. Click Manage.
The IDE displays the Configurations dialog box.
image::images/configurations-db.png[]
[start=4]
. Ensure ``Default`` is selected in the Configurations drop-down list.
. In the Analyzer drop-down list, select the ``JRE 8 Profiles Conformance`` or ``Netbeans Java Hints`` analyzer.
. Depending on the choice of the analyzer in the previous step, select the profile to validate, the inspections, or bugs you need to include into your ``Default`` configuration.
[.feature]
--
image::images/select-inspections-small.png[role="left", link="images/select-inspections.png"]
--
[start=7]
. Click OK to save your ``Default`` configuration.
== Creating and Deleting Configurations
You can create and delete your own configurations to be used in the static analysis of your Java code.
*To create a configuration, complete the following steps:*
. Choose Source > Inspect from the main IDE's toolbar.
. In the Inspect dialog box, select the Configuration radio button and select the ``Default`` configuration.
. Click Manage.
. In the Configurations dialog box, click the black arrow at the end of the Configurations drop-down list and choose New.
image::images/newconfig.png[]
A ``newConfig`` configuration is created and added to the Configurations drop-down list.
image::images/newconfig-created.png[]
[start=5]
. In the Analyzer drop-down list, choose ``JRE 8 Profiles Conformance`` or ``Netbeans Java Hints``.
. Specify the profile, inspections, or bugs to be included into your own configuration.
. Click OK to save your edits and close the Configurations dialog box.
The created ``newConfig`` configuration is available in the Configuration drop-down list of the Inspect dialog box.
[.feature]
--
image::images/newconfig-inspect-small.png[role="left", link="images/newconfig-inspect.png"]
--
NOTE: To rename a configuration, select the ``newConfig`` configuration in the Configurations drop-down list, click the black arrow at the end of the Configurations drop-down list and choose Rename. Type a new name (for example, ``renamedConfig`` ) and press kbd:[Enter] to save your edits.
image::images/renamedconfig.png[]
*To delete a configuration, complete the following steps:*
. Choose Source > Inspect from the main IDE's toolbar.
. In the Inspect dialog box, select the Configuration radio button and select the configuration to be deleted ( ``renamedConfig`` in this example).
. Click Manage.
. In the Configurations dialog box, click the black arrow at the end of the Configurations drop-down list and choose Delete.
image::images/delete.png[]
[start=5]
. In the Delete Configuration dialog box, click Yes to confirm the deletion of the configuration.
image::images/delete-confirm.png[]
The ``renamedConfig`` configuration is deleted from the Configurations list.
NOTE: Refer to the xref:../../../tutorials/nbm-java-hint.adoc[+NetBeans Java Hint Module Tutorial+] for information on how to create a NetBeans module that provides one or more NetBeans Java hints.
== Running Single Inspections
You can inspect your code for a particular deficiency in your source code using the static code analysis feature in the NetBeans IDE.
*To detect a specific inconsistency or problem in your Java source code with a single inspection, complete the following steps:*
. Choose Source > Inspect from the main IDE's menu.
. In the Scope drop-down list of the Inspect dialog box, select a file, package, or project(s) to be inspected.
. Select Single Inspection and do either of the following:
--
* In the Single Inspection drop-down list, scroll and select a _single_ NetBeans Java hint or FindBugs bug to be used in the source code analysis, or
[.feature]
--
image::images/single-inspection-small.png[role="left", link="images/single-inspection.png"]
--
* Click Browse to open the Configurations dialog box and, in the Analyzer drop-down list, specify the analyzer and then choose a profile (for the JRE 8 Profile Compliance analyzer), a _single_ inspection (for the NetBeans Java Hints analyzer), or a _single_ bug (for the FindBugs analyzer) to be used in the source code analysis. Click OK to close the Configurations dialog box.
[.feature]
--
image::images/hint-inspection-small.png[role="left", link="images/hint-inspection.png"]
--
[start=4]
. In the Inspect dialog box, click Inspect to perform the source code analysis.
After the Inspect operation is completed, the hints that can be applied to your code or bugs that have been found are displayed in the Inspector Window below the Source Editor.
--
== Summary
This tutorial covers most frequent usages of the static code analysis feature in the NetBeans IDE. Please note that with the static code analysis functionality you can also perform custom refactorings at a project scope, or apply particular refactoring configurations to several projects open in the IDE, etc.
<<top,top>>