Не загружайте артефакт из удаленного хранилища - PullRequest
4 голосов
/ 24 августа 2009

Я бы хотел указать некоторые артефакты, которые НЕ ДОЛЖНЫ загружаться из удаленного репозитория, даже если они там присутствуют. Есть ли способ добиться этого в maven2?

Ответы [ 4 ]

10 голосов
/ 24 августа 2009

Вы пробовали автономный режим?

mvn -o
5 голосов
/ 24 августа 2009

Не уверен, что это именно то, что вам нужно, но вы можете объявить зависимость с помощью system scope, которая сообщает Maven, что предполагается, что конкретный JAR находится в пути к классам (например, тот, который включен в Каталог установки Java).

Из документов :

Эта область действия аналогична предоставленной, за исключением того, что вы должны предоставить JAR, который содержит ее явно. Артефакт всегда доступен и не просматривается в хранилище.

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

2 голосов
/ 24 августа 2009

Мне не совсем понятно, что вы ищете, поэтому вот ответы на несколько разных интерпретаций:

Если артефакты являются транзитивными зависимостями, вы можете указать, что зависимости будут исключены. См. Раздел «Исключение переходных зависимостей» документации Механизм зависимостей .

Если вы хотите убедиться, что нет артефактов, вы можете перевести Maven в автономный режим, передав -o в качестве параметра командной строки или добавив true в ваши настройки.xml

С помощью менеджера репозитория Nexus Maven вы можете настроить прокси-репозиторий для удаленного репозитория и настроить прокси для блокировки определенных артефактов. Это можно сделать, добавив «цель хранилища», соответствующую groupId и artifactId артефакта, а затем создайте разрешения на чтение для той цели, которой нет у пользователя Nexus. Любой пользователь, подключающийся к прокси-серверу, не сможет получить этот артефакт. См. Nexus book для подробной информации о настройке целей.

Если ни один из них не отвечает вашим потребностям, не могли бы вы уточнить ваш вопрос, пожалуйста.

0 голосов
/ 24 августа 2009

Один из вариантов - установить локальную копию файла с install-file mojo и дать вашей копии другое имя. Предварительно ожидающий "местный". имя groupid позволит легко идентифицировать файлы pom. Если бы также было легко отключить.

добавьте его в свои локальные репозитории следующим образом:

mvn install: install-file -Durl = file: //xmlthing.jar -Dinternal -Dfile = xmthing.jar -DgroupId = local.org.xmltool -DartifactId = xmlthing -Dversion = 1.6.1 -Dpackaging = jar

Затем вы замените

 <dependency>
     <groupId>org.xmltool</groupId>
     <artifactId>xmlthing</artifactId>
     <version>1.6.1</version>
 </dependency>

с

<dependency>
    <groupId>local.org.xmltool</groupId>
    <artifactId>xmlthing</artifactId>
    <version>1.6.1</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...