Почему maven скачал более короткую версию для jar зависимостей? - PullRequest
0 голосов
/ 11 марта 2019

Я использую приведенную ниже конфигурацию.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.14</version>
</dependency>

И я вижу зависимую poi версию 3.14 в poi-ooxml-3.14.Пом .

 <dependencies>
    <dependency>
       <groupId>org.apache.poi</groupId>
       <artifactId>poi</artifactId>
       <version>3.14</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-schemas</artifactId>
      <version>3.14</version>
    </dependency>
  </dependencies>

Но в выводе дерева зависимостей.ПОИ 3.10.1 был загружен, как это могло произойти?Какое правило для этого?Спасибо.

enter image description here

Ниже (mvn зависимость: дерево) находится единственное место, содержащее 3.10.1.

[INFO] +- org.apache.poi:poi-ooxml:jar:3.14:compile
[INFO] |  +- org.apache.poi:poi:jar:3.10.1:compile
[INFO] |  +- org.apache.poi:poi-ooxml-schemas:jar:3.14:compile
[INFO] |  \- com.github.virtuald:curvesapi:jar:1.03:compile

1 Ответ

0 голосов
/ 11 марта 2019

Вы получаете poi 3.10.1 из-за транзитивной зависимости org.apache.poi - poi-ooxml-schemas, которая переопределяет ваше фактическое объявление зависимости. Вы должны попробовать следующие записи в вашем pom.xml, чтобы избежать нежелательной версии poi

 <dependency>
       <groupId>org.apache.poi</groupId>
       <artifactId>poi</artifactId>
       <version>3.14</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-schemas</artifactId>
      <version>3.14</version>
            <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
          <groupId>org.apache.poi</groupId>
          <artifactId>poi</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...