Details
Description
In the attached example project, module "usage" uses annotation @Example:
public interface Usage { @Example String getEmail(); }
which is defined in module "annotation" as:
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface Example { }
Consequently, the pom.xml of module "usage" defines a compile-dependency to module "annotation" but the dependency:analyze-only goal incorrectly reports this as unused dependency:
[main] [INFO] --- maven-dependency-plugin:3.0.0:analyze-only (analyze-dependencies) @ usage --- [main] [WARNING] Unused declared dependencies found: [main] [WARNING] com.example:annotation:jar:1.0-SNAPSHOT:compile
This false positive is only reported if
- the annotation is meta-annotated with target TYPE_USE + TYPE_PARAMETER
- and the source.version/target.version of the compiler plugin for module "usage" is 1.8
There's no false positive if the @Target meta-annotation is removed or if compiler's source/target version is set to 1.7.
Attachments
Attachments
Issue Links
- is blocked by
-
MSHARED-674 Maven Dependency Analyzer ignores Java 8 type annotations
- Closed
- is related to
-
MSHARED-792 Maven Dependency Analyzer ignores Java 8 type annotations on local variables
- Closed