Maven: вручную установите Jar-файл из локальной папки, а затем подключитесь к Интернету, загрузите и установите все его зависимости - PullRequest
0 голосов
/ 07 февраля 2012

В файле pom моего проекта есть зависимость, которую я вижу в Центральном репозитории Maven , javax.enterprise:cdi-api:jar:1.0-SP4, но по некоторым причинам я получаю на некоторых из моих Компьютеры следующая ошибка при сборке проекта (отсюда сбой сборки):

[INFO] Unable to find resource 'javax.enterprise:cdi-api:jar:1.0-SP4' in repository central (http://repo1.maven.org/maven2)
  1. Есть идеи, почему я получаю эту ошибку только на некоторых моих компьютерах (могу сказать, что все компьютеры используют одну и ту же сеть)?

  2. Почему я вообще получаю эту ошибку? Насколько я вижу банка IS в центральном хранилище maven.

  3. Несмотря на то, что maven не смог найти / загрузить jar на некоторых компьютерах, я смог загрузить его вручную через браузер на этих компьютерах. Как это может быть?

  4. Хорошо, я скачал банку вручную через браузер на одном из проблемных компьютеров. Я хочу установить его вручную в локальный репозиторий на этом компьютере. Итак, из командной строки я делаю:

mvn install:install-file -DgroupId=javax.enterprise -DartifactId=cdi-api -Dversion=1.0-SP4 -Dpackaging=jar -Dfile=path/to/file

... но ни одна из его зависимостей также не была загружена. Есть ли какой-нибудь плагин maven для установки файла в локальный репозиторий И скачать и установить все его зависимости в локальный репозиторий? Если да, пожалуйста, покажи мне, как его использовать.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012
  1. Пожалуйста, проверьте на компьютерах, где jar-файл не загружен, если в файле settings.xml, присутствующем в папке .m2, указан URL-адрес необходимого jar-файла.Если нет, добавьте их.

  2. Загрузка невозможна, поскольку maven выполняет поиск по URL-адресам, определенным только в файле settings.xml.Поэтому, если URL-адрес отсутствует, даже если jar находится в центральном хранилище, он не будет загружен.

  3. В вашем браузере вы можете перейти по этой ссылке и скачать.Maven не сможет сделать это по причине, указанной во втором пункте

0 голосов
/ 07 февраля 2012

Хорошо, похоже, вам нужно указать свой путь к хранилищу в файле pom. Каков URL хранилища?это локально для вашей сети или какой-то открытый URL?например: http://repo2.mvn.org/???

Пример будет выглядеть следующим образом: *

<repositories>
        <repository>
          <id>codehausSnapshots</id>
          <name>Codehaus Snapshots</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
          <url>http://snapshots.maven.codehaus.org/maven2</url>
          <layout>default</layout>
        </repository>
      </repositories>

Если бы вы могли вставить файл POM, вам было бы легче помочь.

Чтобы ответить на ваш 3 пункт: Проверьте файл settings.xml в .m2 \ settings.xml, убедитесь, что присутствует тот же контент.Иногда settings.xml изменяются непосредственно в установочном каталоге maven.так что вам лучше также проверить это местоположение.

Чтобы ответить на ваш 4-й пункт: mvn install: install устанавливает (простым языком копии) артефакт (jar / ear / zip / любой артефакт, предназначенный для распространения) в mavenлокальный репозиторий или в удаленный репозиторий.Итак, в вашей команде вы только что попытались установить только cdi-api jar.

Всякий раз, когда вы запускаете mvn compile, пакет mvn, mvn install, maven сканирует ваш pom-файл и загружает всю упомянутую зависимость в ваш локальный репозиторий.Я бы посоветовал вам посмотреть ваш локальный репозиторий и посмотреть, как он создает структуру каталогов.

...