Отладка, почему maven-dependency-plugin терпит неудачу в зависимости от цели: analysis-only - PullRequest
0 голосов
/ 05 ноября 2019

Я запускаю сборку 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>
...