apache / apache/maven-dependency-plugin

[MDEP-757] bug with "non-test scoped test only dependencies found"

Open
#1,261 22 comments 0 reactions 0 assignees View on GitHub
bug priority:major
Dominant language
Java
Stars
175
Forks
196
Avg merge
19h 30m
Merged PRs (30d)
5

Description

**[Henning Schmiedehausen](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=henning)** opened **[MDEP-757](https://issues.apache.org/jira/browse/MDEP-757?redirect=false)** and commented

Starting with 3.2.0, I see this problem in one of my project modules:

```
[INFO] --- maven-dependency-plugin:3.2.0:analyze-only (basepom.default) @ foundation ---
[WARNING] Non-test scoped test only dependencies found:
[WARNING] com.fasterxml.jackson.core:jackson-databind:jar:2.12.2:compile
```

This is not correct:

```
% cd lib/foundation

% grep -r databind src/main

src/main/java/dev/data/DataSet.java:import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
src/main/java/dev/data/DataSet.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize;
src/main/java/dev/data/WriteableLocator.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize;
src/main/java/dev/data/ObjectMetadata.java:import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
src/main/java/dev/data/ObjectMetadata.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize;
src/main/java/dev/data/DataDefinition.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize;
src/main/java/dev/data/ObjectAttribute.java:import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
src/main/java/dev/data/ObjectAttribute.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize;
src/main/java/dev/data/ObjectDefinition.java:import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
src/main/java/dev/data/ObjectDefinition.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize;
src/main/java/dev/data/ImmutableDataObject.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize;
```

So this dependency is used all over the place in the main sources (which is why it can not be in test scope). However, the plugin no longer (it did in 3.1.2) recognize it (all the uses are just annotations, so I guess that is the problem) and raises this error.

---

**Affects:** 3.2.0

**Attachments:**
- [MDEP-757-reproducer-2-rec.zip](https://issues.apache.org/jira/secure/attachment/13056446/MDEP-757-reproducer-2-rec.zip) (_14.57 kB_)

**Issue Links:**
- [MDEP-753](https://issues.apache.org/jira/browse/MDEP-753) Non-test dependency reported as Non-test scoped test only dependency

**Remote Links:**
- [GitHub Pull Request #82
](https://github.com/apache/maven-dependency-analyzer/pull/82)

11 votes, 20 watchers

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the analyze-only goal and the 3.2.0 behavior described in the issue, using the attached reproducer and the listed main-source annotation usages as the test case. Review pull request #82 and the handling of annotation-only dependencies; done means the Jackson dependency is recognized as used from main sources and is no longer reported as test-only.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.