Я просто проверил некоторые проекты и потребность создать их, однако я установил Знатока некоторое время назад (6 месяцев, возможно?) и действительно не использовали его с тех пор - pom.xml для проекта, который я имею, не имеет этого "http://repo1.maven.org/myurlhere" нигде в нем - это имеет абсолютный URL, где знаток repo для проекта, но знаток все еще пытается загрузить от общего знатока repo:
Macintosh:trunk$ mvn clean install
[INFO] Scanning for projects...
Downloading: http://repo1.maven.org/url/project/project/x.x/project-x.x.pom
[INFO] Unable to find resource 'url.project:project:pom:x.x' in repository central (http://repo1.maven.org/)
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
GroupId: url.project
ArtifactId: project
Version: x.x
Reason: Unable to download the artifact from any repository
url.project:project:pom:x.x
from the specified remote repositories:
central (http://repo1.maven.org/)
Может любой помогать мне с тем, что я не делаю правильно, в основном я просто проверил проекты из командной строки, редактора CD в каталог и выполнил "mvn чистую установку" - ничто иное. Любая справка значительно ценится.
По умолчанию Maven всегда будет искать в официальном репозитории Maven, то есть http://repo1.maven.org .
Когда Maven пытается собрать проект, он будет искать в вашем локальном репозитории (по умолчанию ~ / .m2 / repository
, но вы можете настроить его, изменив
значение в вашем ~ / .m2 / settings.xml
), чтобы найти любую зависимость, плагин или отчет, определенные в вашем pom.xml
. Если соответствующий артефакт не найден в вашем локальном репозитории, он будет искать во всех настроенных внешних репозиториях, начиная с репозитория по умолчанию, http://repo1.maven.org .
Вы можете настроить Maven, чтобы избежать использования этого репозитория по умолчанию, установив зеркало в настройках .xml
файл:
<mirrors>
<mirror>
<id>repoMirror</id>
<name>Our mirror for Maven repository</name>
<url>http://the/server/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
Таким образом, вместо обращения к http://repo1.maven.org
, Maven свяжется с вашим репозиторием предприятия ( http: // the / server
в этом примере).
Если вы хотите добавить еще один репозиторий, вы можете определить новый в своем файле settings.xml:
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>foo.bar</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>http://new/repository/server</url>
</repository>
</repositories>
Вы можете увидеть полную модель settings.xml
здесь .
Что касается процесса clean
, вы можете попросить Maven запустить его в автономном режиме . В этом случае Maven не будет пытаться подключиться к каким-либо внешним репозиториям:
mvn -o clean
По сути, все, что Maven сообщает вам, это то, что определенные зависимости в вашем проекте недоступны в центральном репозитории maven. По умолчанию выполняется поиск в вашей локальной папке .m2 (локальный репозиторий), а затем в любых настроенных репозиториях в вашем POM, а затем в центральном репозитории maven. Посмотрите репозиторий раздел справочника Maven.
Проблема в том, что проект, который был зарегистрирован, не настраивал POM таким образом, чтобы можно было найти все зависимости и построить проект с нуля.
файл pom.xml для моего проекта не содержит этого " http://repo1.maven.org/myurlhere "где угодно в нем
Все проекты http://repo1.maven.org/ объявлены как
(и
]) по умолчанию. Этот репозиторий, который называется центральным репозиторием , наследуется, как и другие настройки по умолчанию, от «Super POM» (все проекты наследуются от Super POM). Таким образом, POM на самом деле представляет собой комбинацию Super POM, любых родительских POM и текущего POM. Эта комбинация называется «эффективным POM» и может быть распечатана с использованием цели effective-pom
подключаемого модуля Maven Help (полезно для отладки).
И действительно, если вы запустите:
mvn help:effective-pom
Вы увидите по крайней мере следующее:
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
</pluginRepository>
</pluginRepositories>
он имеет абсолютный URL-адрес, по которому репозиторий maven предназначен для проекта, но maven все еще пытается загрузить из общего репозитория maven
Maven попытается найти зависимости во всех объявленных репозиториях, в том числе в центральном репозитории, который, как мы видели, присутствует по умолчанию.Но, согласно трассировке, которую вы показываете, у вас определен только один репозиторий (центральный репозиторий), иначе maven выдаст что-то вроде этого:
Reason: Unable to download the artifact from any repository
url.project:project:pom:x.x
from the specified remote repositories:
central (http://repo1.maven.org/),
another-repository (http://another/repository)
Итак, в основном maven не может найти ] url.project: project: pom: xx
, потому что он недоступен в центре.
Но, не зная, какой проект вы проверили (возможно, в нем есть конкретные инструкции) или какая зависимость отсутствует (возможно, ее можно найти в другом репозитории), вам невозможно помочь.