2012-03-06 2 views
0

Мне нужно сделать доступ к локальному репозиторию Maven (файл: //), когда он запущен в автономном режиме (в основном, я пытаюсь настроить иерархию репозитория, чтобы он не помещал артефакты, они нуждаются в них).Доступ к локальному хранилищу в автономном режиме

Это не работает из-за коробки, хотя я всегда предполагал, что этот сценарий поддерживается. Есть ли какой-то флаг для включения конкретного хранилища в автономном режиме?

ответ

1

Возможно, set up profiles for repositories utilizing the local file system, а не сетевой адрес.

<repository> 
    <id>mymaven</id> 
    <url>file://D:\mylocalrepo</url> 
</repository> 

Согласно документации, это также возможно reference offline mode in a property value.

${settings.offline} 

Вы бы затем использовать их вместе, чтобы activate a given settings profile согласно примерам here. (Если Maven не обнаруживает свойство, попробуйте оценить его непосредственно с помощью выше синтаксиса.)

<profiles> 
    <profile> 
     <id>myNeededProfile</id> 
     <activation> 
     <activeByDefault>false</activeByDefault> 
     ... 
     <property> 
      <name>offline</name> 
      <value>true</value> 
     </property> 
     ... 
     </activation> 
     ... 
    </profile> 
    </profiles> 

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

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

mvn groupId:artifactId:goal -o -P profile-1,profile-2 

Или, еще более прямолинейно, благодаря наличию двух отдельных файлов настроек и заменял их специально для автономных/онлайн-операций. Вы можете написать оболочку командной строки в любой ОС, которую вы используете для обнаружения автономного запроса, а затем переместить и переименовать файлы перед выполнением команд Maven, а затем переместить их после завершения.

+0

Нет, это не то, что я хочу. Мне нужен способ запустить Maven в автономном режиме (мне нужно, чтобы заставить плагин Tycho предпочитать локальные репозитории P2) и по-прежнему иметь иерархию репозиториев (поэтому некоторые репозиции r/o) – Eugene

1

Maven всегда пытался подключиться к центральному хранилищу. Вы можете определить свой центральный (это только свойство, которое можно переопределить)

сделать то же самое для снимка, плагин хранилище и т.д. Конфигурация вы можете использовать в качестве профиля - это будет факультативным. См. ingyhere ответ.

+0

Моя проблема в том, что когда Maven отключен, Tycho будет игнорировать мои локальные репозитории P2 и начнет собирать артефакты из Интернета. Поэтому я не могу использовать онлайн-режим, даже если я переопределяю центральный. – Eugene

+0

Вы пробовали переопределить ссылки репозитория из родительского проекта POM AND в настройках мастера Maven? Кроме того, пожалуйста, обратитесь к более подробному изначальному вопросу. Это проблема проекта, в которой настройки Maven по какой-либо причине переопределены или проект не поддерживает автономный режим. Необходимо подойти к конкретному решению, а не к общему. – ingyhere

1

Для окружающей среды Dev только если вы используете IntelliJ IDEA, вы можете настроить Maven для работы в автономном режиме, следующим образом:

Preferences... > Search for Maven > Work offline (checked) 
Смежные вопросы