Dies ist eine Struktur meines Multi-Modul-Projekts:
%Vor% Mit anderen Worten, das Modul api
verwendet slf4j
für Protokollierungszwecke. Es weiß nicht, was die Implementierung der Protokollierungsanlage sein wird. Das Modul foo
fügt slf4j-log4j12
und log4j
hinzu, um die Protokollierung zu implementieren. Ziemlich einfach.
Jetzt starte ich maven-dependency-plugin:analyze-only
und das steht für Modul foo
:
Bedeutet, dass das Plugin nicht versteht, dass foo
diese Abhängigkeiten wirklich benötigt. Wie kann ich das Problem lösen?
Was passiert, wenn Sie diesen Abhängigkeiten einen runtime
Bereich anstelle von compile
geben?
Wenn Sie sie als Kompilierzeitabhängigkeiten definiert haben, denke ich, dass das Abhängigkeits-Plugin denkt, dass sie für die Kompilierung benötigt werden, wenn sie es wirklich nicht sind. Zur Laufzeit benötigen Sie jedoch nur die Dateien slf4-log4j und log4j JAR.
Bearbeiten: Möglicherweise müssen Sie die Option ignoreNonCompile
:
Haben Sie versucht, den Bereich von slf4j-log4j12
und log4j
auf Laufzeit festzulegen?
Siehe Abhängigkeitsumfang für Maven
Tags und Links java maven-dependency-plugin maven-2