Игнорировать проблемы с помощью maven-enforcer-plugin

Я пытаюсь использовать плагин maven-enforcer с правилом конвергенции. Мне удалось избавиться от всех проблем, кроме одной. Мы используем gwt в нашем проекте и нуждаемся в hibernate-validator 4.1.0.Final на стороне клиента с предоставленной областью действия. На стороне сервера нам нужен hibernate-validator 4.2.0.Final, потому что нам нужны некоторые новые функции. Зависимость 4.1.0.Final содержит источники классификатора. Таким образом, я могу иметь обе версии в одном pom. Все работает нормально, но плагин Enforcer не очень доволен и дает сбой.

Можно ли как-нибудь настроить плагин, чтобы разрешить эту «проблему»?

Изменить:

The enforcer-plugin fails with the following error: 
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:

Failed while enforcing releasability the error(s) are [
Dependency convergence error for org.hibernate:hibernate-validator:4.1.0.Final paths to dependency are...

С уважением, арне


person Arne    schedule 12.10.2013    source источник
comment
Можете ли вы также опубликовать сообщение об ошибке? Почему вам нужны две разные версии Bean Validtion?   -  person Hardy    schedule 13.10.2013
comment
Я добавил сообщение об ошибке. Это нормальная ошибка сходимости. GWT не работает с более новыми версиями, чем 4.1.0.Final (code.google.com/p/google-web-toolkit/issues/detail?id=7661) Но зависимость используется только при компиляции кода javascript. Он не упакован в мой военный файл. На стороне сервера мне нужна версия 4.2.0.Final, потому что она имеет проверку метода и может использоваться с guice.   -  person Arne    schedule 13.10.2013


Ответы (2)


Если кто-то столкнется с той же проблемой: я решил ее, переименовав идентификатор артефакта старой версии в hibernate-validator-gwt и загрузив его в наш собственный репозиторий. Работает пока.

person Arne    schedule 18.10.2013
comment
Вы пытались передать параметр командной строки -Denforcer.skip=true? - person asgs; 30.12.2014
comment
Я не хочу пропускать силовика во всем. Я хотел, чтобы он просто проигнорировал это одно нарушение - person Arne; 01.01.2015

У меня была та же проблема с новой testcontainers-Version.

Я получил следующую ошибку:

[WARNING] Rule 1: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for net.java.dev.jna:jna:5.2.0 paths to dependency are:
+-myGroupId:myArtifactId:0.1-SNAPSHOT
  +-org.testcontainers:jdbc:1.15.0-rc2
    +-org.testcontainers:database-commons:1.15.0-rc2
      +-org.testcontainers:testcontainers:1.15.0-rc2
        +-org.rnorth.visible-assertions:visible-assertions:2.1.2
          +-net.java.dev.jna:jna:5.2.0
and
+-myGroupId:myArtifactId:0.1-SNAPSHOT
  +-org.testcontainers:jdbc:1.15.0-rc2
    +-org.testcontainers:database-commons:1.15.0-rc2
      +-org.testcontainers:testcontainers:1.15.0-rc2
        +-com.github.docker-java:docker-java-transport-zerodep:3.2.5
          +-net.java.dev.jna:jna:5.5.0

Я как бы проигнорировал эту ошибку, добавив зависимость, которая неправильно сходится, в мой dependencyManagement:

<dependency>
   <!-- declared to "ignore" error in enforcer-plugin in dependencyConvergence of testcontainer-dependency -->
   <groupId>net.java.dev.jna</groupId>
   <artifactId>jna</artifactId>
   <version>5.5.0</version>
</dependency>

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

P.S.: Вот функция Конвергенция зависимостей, о которой мы говорим.

Изменить: возможно, обновление используемой maven-версии также может помочь решить проблему конвергенции без управления какой-либо дополнительной зависимостью.

person MichaelCkr    schedule 23.10.2020