[ https://issues.apache.org/jira/browse/MDEP-594?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andreas Hubold updated MDEP-594: -------------------------------- Description: In the attached example project, module "usage" uses annotation {{@Example}}: {code} public interface Usage { @Example String getEmail(); } {code} which is defined in module "annotation" as: {code} @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface Example { } {code} 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: {noformat} [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 {noformat} 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. was: In the attached example project, module "{{usage}}" uses annotation {{@Example}}: {code} public interface Usage { @Example String getEmail(); } {code} which is defined in module "{{annotation}}" as: {code} @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface Example { } {code} 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: {noformat} [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 {noformat} 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. > Dependency reported as "unused declared" when runtime-retention annotation is > used > ---------------------------------------------------------------------------------- > > Key: MDEP-594 > URL: https://issues.apache.org/jira/browse/MDEP-594 > Project: Maven Dependency Plugin > Issue Type: Bug > Components: analyze > Affects Versions: 3.0.0 > Environment: java version "1.8.0_144" > Reporter: Andreas Hubold > Attachments: example.tgz > > > In the attached example project, module "usage" uses annotation {{@Example}}: > {code} > public interface Usage { > @Example String getEmail(); > } > {code} > which is defined in module "annotation" as: > {code} > @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) > @Retention(RetentionPolicy.RUNTIME) > public @interface Example { > } > {code} > 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: > {noformat} > [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 > {noformat} > 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. -- This message was sent by Atlassian JIRA (v6.4.14#64029)