Imports Rules ("rulesets/imports.xml")

DuplicateImport Rule

Checks for a duplicate import statements.

ImportFromSamePackage Rule

Checks for an import of a class that is within the same package as the importing class.

ImportFromSunPackages Rule

New in CodeNarc 0.14 Avoid importing anything from the 'sun.*' packages. These packages are not portable and are likely to change.

Example of violations:

    import sun.misc.foo
    import sun.misc.foo as Foo

    public class MyClass{}

MisorderedStaticImports Rule

New in CodeNarc 0.14 Checks for static import statements which should never be after nonstatic imports.

This rule has one property comesBefore, which defaults to true. If you like your static imports to come after the others, then set this property to false.

Examples of violations:

    import my.something.another
    import static foo.bar

    public class MyClass{}

UnnecessaryGroovyImport Rule

Checks for an import from any package that is already automatically imported for Groovy files. A Groovy file does not need to include an import for classes from java.lang, java.util, java.io, java.net, groovy.lang and groovy.util, as well as the classes java.math.BigDecimal and java.math.BigInteger.

UnusedImport Rule

Checks for import statements for classes that are never referenced within the source file. Also checks static imports.

Known limitations:

  • Does not check for unused imports containing wildcards (e.g. import org.codenarc.*)
  • Misses unused imports if the class/alias name is contained within strings, comments or other (longer) names (i.e., if that string shows up almost anywhere within the source code).

NoWildcardImports Rule

Since CodeNarc 0.21

Wildcard imports, static or otherwise, should not be used.

Example of violations:

    import my.something.*
    import static foo.bar.*

    public class MyClass{}