apache / apache/maven-dependency-plugin
[MDEP-757] bug with "non-test scoped test only dependencies found"
- 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