Я запускаю сборку Maven с Maven 3.5.4 с активированной maven-dependency-plugin
, чтобы проанализировать зависимости моего проекта и потерпеть неудачу, если зависимости не объявлены / etc. Пока все хорошо, сборка удалась.
Не удается запустить ту же сборку с Maven 3.6+ из-за обнаруженной использованной необъявленной зависимости .
[WARNING] Used undeclared dependencies found:
[WARNING] jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
Я почти уверен, что не использую эту зависимостьнепосредственно (как это не сбои в Maven 3.5.4) и хотите знать, почему, черт возьми, плагин вдруг думает, что эта зависимость используется.
В любом случае для отладки или настройки плагина, чтобы сообщить мне, какой класс отвечает за этот (ложный?) Положительный результат?
Моя настройка:
Windows 10
JDK: AdoptOpenJDK 11.0. 4 (Горячая точка)
Звонок Maven: mvn clean install
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.foo</groupId>
<artifactId>foo-parent</artifactId>
<version>2020-1.0.0-SNAPSHOT</version>
</parent>
<artifactId>foo-dependency-analyze</artifactId>
<packaging>jar</packaging>
<dependencies>
...
<!-- this dependency isn't used in my module directly,
but is a transitive dependency
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>
-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<failOnWarning>true</failOnWarning>
<ignoreNonCompile>true</ignoreNonCompile>
<verbose>true</verbose>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>