Squeak.ru - шаблоны программирования

Есть ли способ запретить зависимости от определенных артефактов в Maven?

У меня проблема с артефактом maven для junit. Он поставляется в комплекте с hamcrest, но мне нравится использовать более позднюю версию hamcrest, поэтому в моих проектах необходимо использовать junit-dep и исключать зависимости от hamcrest.

У меня есть родительский pom.xml с разделом dependencyManagement для обработки нужной мне версии junit-dep и исключения hamcrest. Однако я постоянно сталкиваюсь с проблемой, когда какая-то другая тестовая библиотека включает транзитивную зависимость от junit.

Обратите внимание, что проблема не в номере версии. Это особый артефакт. Я не хочу юнит, я хочу юнит-деп. Есть ли способ сказать в моем управлении зависимостями (или где-либо еще), что я никогда вообще не хочу включать junit какой-либо версии?

03.12.2011

Ответы:


1

К сожалению, в управлении зависимостями нет параметра глобальное исключение.

С другой стороны, если вы не хотите, чтобы JUnit jar когда-либо включался, вы можете проделать тот же трюк, что и commons-logging-99.0-does-not-exist.jar.

Вот ссылка, описывающая трюк -> http://day-to-day-stuff.blogspot.com/2007/10/announcement-version-99-does-not-exist.html

Лично я обнаружил, что легче выполнять работу, используя тег <exclusions>.

03.12.2011
  • Очень жаль. Я использую исключения, которые не позволяют ему быть представленным как транзитивная зависимость от jar-файлов, о которых я уже знаю, но я нахожу, что другие в моей команде обнаруживают его заново (или, что еще хуже, просто оставляют зависимость junit 3.8.1 по умолчанию в новом pom.xml ). 03.12.2011
  • @джерикс. Я настоятельно рекомендую создать родительский супер POM с большим разделом <dependencyManagement>, где все проблемы с зависимостями будут устранены, и сделать все, что вы проектируете, наследованием от этого POM. Если вы сделаете это, в разделе <dependency> вы должны указать только зависимости без версии. Таким образом, вы знаете, что все ваши зависимости были учтены в одном центральном месте. Если по ошибке вы укажете зависимость без версии не в родительском супер POM, maven обнаружит это и пожалуется. 03.12.2011
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...