Почему у моего последнего модуля Maven номер версии отличается от того, от которого он зависит? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть pom, приложение верхнего уровня, в котором есть 2 модуля, сервис и веб.Я обычно компилирую, используя " mvn -Pprofile1, profile2 -DskipTests clean install " из каталога приложения.Реактор правильно вычисляет, что сервис должен быть скомпилирован до публикации.По какой-то причине, и это моя проблема / вопрос, он включает версию 4.3.6 И 4.4.1 для org.apache.httpcomponents: httpclient: jar в окончательной сборке WAR и, следовательно, в моем каталоге внешних библиотек IntelliJ.Почему?

Так что больше информации, чтобы помочь в обсуждении:

  1. Соответствующие фрагменты службы пом:

    ...
    <properties>
        <httpclient.version>4.4.1</httpclient.version>
        <some.jar.version>2.3.4</some.jar.version>
    </properties>
    
    <dependencies>
        <dependency>
           <groupId>org.company</groupId>
           <artifactId>some-jar</artifactId>
           <version>${some.jar.version}</version>
           <exclusions>
               <exclusion>
                  <!-- Don't bring in httpclient 4.3.6 -->
                  <groupId>org.apache.httpcomponents</groupId>
                  <artifactId>httpclient</artifactId>
               </exclusion>
           </exclusions>
       </dependency>
    
       <dependency>
           <groupId>org.apache.httpcomponents</groupId>
           <artifactId>httpclient</artifactId>
           <version>${httpclient.version}</version>
       </dependency>
    </dependencies>
    ...
    
  2. Соответствующие фрагменты веб-пом:

    ...
    <dependencies>
        <dependency>
           <groupId>${project.groupId}</groupId>
           <artifactId>service</artifact>
           <version>${project.version}</version>
        </dependency>
    </dependencies>
    ...
    
  3. Вот фрагмент дерева зависимостей из каталога службы

    ----------------------------------------------
    Building Service 1.0-SNAPSHOT        
    ----------------------------------------------
    
    --- maven-dependency-plugin:3.0.0:tree (default-cli) service ---
    company:service:jar:1.0-SNAPSHOT
    +- org.company.some-jar:jar:2.3.4:compile
    |  \- org.company2.another-jar:jar:1.2.3:compile
    +- org.apache.httpcomponents:httpclient:jar:4.4.1:compile
    
    ----------------------------------------------
    BUILD SUCCESS        
    ----------------------------------------------
    
  4. Вот фрагмент дерева зависимостей из веб-каталога

    ----------------------------------------------
    Building Web 1.0-SNAPSHOT        
    ----------------------------------------------
    
    --- maven-dependency-plugin:3.0.0:tree (default-cli) web ---
    company:web:war:1.0-SNAPSHOT
    \- company:service:jar:1.0-SNAPSHOT:compile
       +- org.company.some-jar:jar:2.3.4:compile
       |  \- org.company2.another-jar:jar:1.2.3:compile
       +- org.apache.httpcomponents:httpclient:jar:4.3.6:compile
    
    ----------------------------------------------
    BUILD SUCCESS        
    ----------------------------------------------
    

Почему дерево зависимостей веб-проекта говорит, что служба jar тянет в 4.3.6 httpclient, когда зависимостьдерево корректного обслуживания говорит, что оно тянет в версии 4.4.1?

ПРИМЕЧАНИЕ. Других ссылок на httpclient нет ни в деревьях зависимостей, ни в poms.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...