2009-11-18 1 views
19

В моем базовом проекте я использую зависимость JasperReports, которая имеет несуществующее объявление репозитория в своем pom. Когда я запускаю каждую комманду Maven, есть зависимость, ищущая коллекцию commons в этом репозитории Jasper, поэтому мне нужно ждать тайм-аута.
Это мой базовый проект и используется как зависимость в моих других проектах, так что снова мне нужно подождать таймаут.
Есть ли способ переместить этот репозиторий в черный список или переопределить эти настройки?Как вручную отключить/черный список Репозиторий Maven

Примечание:
1.Why это поиск в Jasper хранилище, может быть bacause диапазонов

<dependency> 
    <groupId>commons-collections</groupId> 
    <artifactId>commons-collections</artifactId> 
    <version>[2.1,)</version> 
    <scope>compile</scope> 
</dependency> 

2.My идеи, чтобы решить эту проблему, чтобы изменить яшму П и использовать хранилище прокси, но я надеюсь другой вариант.
3. Я использую версию jasperreports 1.3.3, и я бы не хотел ее менять.

ответ

8

Есть ли способ переместить этот репозиторий в черный список или переопределить эти настройки?

Насколько мне известно, это невозможно.

Почему искать в Jasper хранилище, возможно, из-за диапазонов

Да, я думаю, что диапазоны «ответственность» здесь такого поведения. Без диапазонов Maven не будет проверять удаленные репозитории для более новой версии, чем та, которая доступна в вашем локальном репо.

Моя идея решить эту проблему - изменить jasper pom и использовать репозиторий прокси, но я ищу другой вариант.

Фиксация яшмы и использование прокси-хранилища, конечно, были бы идеальным решением, но это не всегда возможно. Возможно, обходной путь. Вы пытались исключить транзитивные зависимости jasperreports, которые имеют диапазоны и предоставлять их сами (с фиксированной версией) в вашем pom. Что-то вроде этого:

<dependencies> 
    <dependency> 
    <groupId>jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>1.3.3</version> 
    <!-- Remove Transitive dependencies drawn by Jasper Report that we don't want --> 
    <exclusions> 
     <exclusion> 
     <groupId>commons-collections</groupId> 
     <artifactId>commons-collections</artifactId> 
     </exclusion> 
     ... 
    </exclusions> 
    </dependency> 
    <dependency> 
    <groupId>commons-collections</groupId> 
    <artifactId>commons-collections</artifactId> 
    <version>2.1</version><!-- Or whatever version, as long as it's fixed --> 
    <scope>compile</scope> 
    </dependency> 
    .... 
<dependencies> 

Таким образом, Maven не должны проверять несуществующие хранилище, и это следует избегать того, чтобы ждать тайм-аута. Я бы попробовал.

Я использую версию jasperreports 1.3.3, и я бы не хотел ее менять.

Нет проблем.

+0

@Pascal. Спасибо, что помогает. Диапазоны в Maven злы :) – cetnar

+0

@cetnar Рад, что это было полезно. И я согласен, диапазоны не очень хорошие, они добавляют больше проблем, чем решений. –

+0

Ответ Фреда ниже, что он может быть отключен, отображается правильно, я только что использовал его. Возможно, новая особенность? – brad

11

Вы можете переопределить репо с помощью объявления mirrorOf в ваших settings.xml. Хотя это не то, для чего это обычно предназначено, например, если зеркало в отчетах яшмы отменит и укажет его на Central (repo1.maven.org), это фактически приведет к его исчезновению.

Лучшим вариантом является использование диспетчера хранилища, такого как Nexus, и затем вы можете контролировать, какие прокси-серверы и артефакты фактически обслуживаются.

+1

Это действительно помогло мне, спасибо. –

+0

Это должно быть приемлемым решением !!! –

+0

я отключил java.net путем добавления к settings.xml ( /conf/settings.xml или ~/.m2/settings.xml) ' ... disabled-jave.net https: //jcenter.bintray.com/ http://download.java.net/maven/2 ' – raisercostin

16

Не был следующий Телль Maven игнорировать определенный репозиторий:

<repository> 
     <id>repo1.maven</id> 
     <url>http://repo1.maven.org</url> 
     <releases> 
      <enabled>false</enabled> 
     </releases> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 
+0

выше подход является хорошим способом черного списка Maven репо, который находится в pom.xml некоторой транзитивной зависимости в , и вызывает проблемы (например, страшный 301 перенаправление вы получаете от java.net), где компоненты уже существуют в центре Maven , – kkrugler

+0

Это случилось со мной - зависимость ссылалась на репозиторий технического предварительного просмотра, который теперь был заменен хранилищем GA. Использовал это, чтобы заблокировать его, и все было хорошо в мире, но пхэ - это сложно отследить! – JoshC13

0

Решение Фреда работало большим для меня. Я должен был сопоставить идентификатор репозитория от pom-файла оскорбительной транзитивной зависимости, чтобы заставить это решение работать.

 Смежные вопросы

  • Нет связанных вопросов^_^