2013-03-18 3 views
3

Когда я запускаю интеграционный тест для своего проекта, он пытается искать в репо, который проходит транзитно, и мне нужно ждать таймаута. Я сделал черный список таким репо.blacklisting a maven repository

<repository> 
     <id>seacrh-snapshots</id> 
     <name>Exodus Snapshot Repository</name> 
     <url>http://repo URL/</url> 
     <releases> 
      <enabled>false</enabled> 
     </releases> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 

, но он по-прежнему тянет этот репозиторий, когда я запускаю тест ИТ:

Downloading: URL repo/maven-metadata.xml 

Есть ли что-нибудь еще, что нужно изменить?

+0

Где вы занесены в черный список репо? Только в вашем POM? Возможно, у вас есть этот репозиторий и в вашем файле settings.xml. –

+0

Я добавил, что в файле setting.xml он по-прежнему тянет это репо. – user1772643

+0

Запустите maven с опцией x (mvn -X), чтобы увидеть, какие файлы настроек maven читаются, возможно, Maven читает еще один файл конфигурации. –

ответ

3

Я настоятельно рекомендую использовать диспетчер хранилища Maven, такой как Nexus. Это поможет вам получить стабильные и воспроизводимые сборки с Maven. Вы можете отключить Хранилища там (или Nexus может справиться с этим и для вас).

http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html

http://maven.apache.org/repository-management.html

3

Как правило, при запуске Maven он идет, чтобы принести артефакты в следующем порядке

  1. это проверить вашу местную .m2/папку Хранилища
  2. , если он может» t найти артефакт, тогда он читает ваш pom/parent pom/super Pom/user level setting.xml/global setting.xml - в этом порядке, чтобы найти внешние репозитории для загрузки ar tifacts from, обычно эти репо являются либо непосредственно из Интернета (например, предварительно сконфигурированные хранилища maven по умолчанию), либо локальные частные репо-менеджеры (например, nexus, Artifactory).
  3. Maven выполнит репо как в том порядке, в котором они объявлены.

Прежде всего, убедитесь, что ваш проект эффективен, что ничто иное не переопределяет вашу конфигурацию. либо в терминале, набрав mvn help: effective-pom в корневом каталоге проекта или легко в затмении «эффективный pom» вид вашего pom.

В противном случае вы можете рассмотреть возможность установки локального менеджера хранилища, поскольку вам не всегда нужно будет извлекать внешние зависимости сторонних разработчиков каждый раз, когда вы запускаете maven. Я бы рекомендовал Artifactory намного лучше, чем связь.