Maven, как игнорировать дескриптор артефакта? - PullRequest
0 голосов
/ 21 февраля 2019

Есть ли способ проинструктировать Maven не искать дескриптор артефакта для некоторых зависимостей?Я борюсь с этой проблемой:

[ERROR] Failed to execute goal on project zws-consumer: Could not resolve dependencies for project com.etech.zws:zws-consumer:jar:2.9.28.RC1-SNAPSHOT: Failed to collect dependencies at com.ptv:xlocate-cxf-client:jar:1.20.1.3: Failed to read artifact descriptor for com.ptv:xlocate-cxf-client:jar:1.20.1.3: Could not find artifact com.ptvag.xserver.build:xserver-parent:pom:1.20.1.0 in artifactory-etech-releases (https://artifactory.etech.delivery/artifactory/etech/releases/) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project zws-consumer: Could not resolve dependencies for project com.etech.zws:zws-consumer:jar:2.9.28.RC1-SNAPSHOT: Failed to collect dependencies at com.ptv:xlocate-cxf-client:jar:1.20.1.3
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:269)
...

Итак, проблема кажется ясной:

Could not find artifact com.ptvag.xserver.build:xserver-parent:pom:1.20.1.0 in artifactory-etech-releases (https://artifactory.etech.delivery/artifactory/etech/releases/)

Проблема в том, что когда я смотрю на хранилище https://artifactory.etech.delivery/artifactory/etech/releases/, нет никакой зависимости отэто имя com.ptvag.xserver.build:xserver-parent но все остальные зависимости есть.

Поскольку речь идет только об описании артефактов, есть ли способ сказать maven игнорировать это.Все зависимости с этим описанием находятся в моем .m2, но команда mvn clean install не работает из-за этой ошибки.

Сборка прошла 2 дня назад, но я пытаюсь перенести проект из jdk8 в 11, и ясталкиваюсь с этой проблемой с 1 дня.

Связанные зависимости:

    <dependency>
        <groupId>com.ptv</groupId>
        <artifactId>xlocate-cxf-client</artifactId>
        <version>1.20.1.3</version>
    </dependency>
    <dependency>
        <groupId>com.ptv</groupId>
        <artifactId>xroute-cxf-client</artifactId>
        <version>1.20.1.3</version>
    </dependency>
    <dependency>
        <groupId>com.ptv</groupId>
        <artifactId>xtour-cxf-client</artifactId>
        <version>1.20.1.3</version>
    </dependency>

Как видите, groupId из этих зависимостей составляет com.ptv, но исключение составляет com.ptvag.Я немного запутался, потому что в репозитории нет com.ptvag groupId.

РЕДАКТИРОВАТЬ

После нескольких поисков, которые я нашел, где была эта зависимость, пожалуйста, посмотрите ниже: enter image description here

Теперь яне понимаю, почему Maven пытаются загрузить его.

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Возможно, вам не хватает родительского pom одной из ваших зависимостей.Без этого родительского pom невозможно построить дерево всех транзитивных зависимостей (родительский pom может содержать зависимости или записи dependencyManagement).Таким образом, сборка не работает.

Артефакт com.ptv:xlocate-cxf-client:jar:1.20.1.3 является (транзитивной) зависимостью вашего проекта.Посмотрите там, если описанный POM является родителем этого проекта.Если это так, вам нужно это для сборки.

0 голосов
/ 21 февраля 2019

Вы можете исключить зависимость следующим образом:

    <project>
      ...
      <dependencies>
        <dependency>
          <groupId>com.etech.zws</groupId>
          <artifactId>zws-consumer</artifactId>
          <exclusions>
            <exclusion>
              <groupId>com.ptvag.xserver.build</groupId>
              <artifactId>xserver-parent</artifactId>
            </exclusion>
          </exclusions> 
        </dependency>
      </dependencies>
    </project>

Но если maven пытается разрешить зависимость, то, скорее всего, это требуется для некоторых частей сборки / проекта.

Выдолжен как-то получить com.ptvag.xserver.build:xserver-parent:pom:1.20.1.0.Если его нет в ваших репозиториях, вы можете установить его вручную с помощью mvn install, если у вас есть pom.xml

...