Как заставить m2e (интеграция maven для eclipse) узнать, где найти зависимости? - PullRequest
2 голосов
/ 04 декабря 2011

Когда работа в STS (springsource tool suite), откроет файл pom.xml и проверит зависимости на «вкладке зависимостей», добавьте / выберите maven зависимость даст 0 найденных результатов.Нам нужно отредактировать pom.xml, чтобы добавить зависимость вручную.Есть ли способ сообщить M2E, где проверять хранилище для поиска зависимости?

Ответы [ 2 ]

3 голосов
/ 04 декабря 2011

По умолчанию все pom.xml автоматически расширяют Super POM, который находится в пакете maven_installation_folder/lib/maven-x.x.x-uber.jar ==> org.apache.maven.project ==> pom-4.0.0. xml . Вся конфигурация, указанная в Super POM, наследуется POM, которые вы создали для своих проектов.

Если вы откроете pom-4.0.0.xml , вы обнаружите, что центральное хранилище maven http://repo1.maven.org/maven2/ определено здесь. Это означает, что если вы укажете <dependency> в своем pom.xml , maven попытается загрузить эту зависимость в следующих порядках:

  1. Локальный репозиторий Maven (т. Е. Ваш локальный жесткий диск)
  2. Центральный репозиторий Maven, указанный в Super POM (т.е. http://repo1.maven.org/maven2/)
  3. Удаленный репозиторий Maven (определен в разделе <repository> вашего pom.xml )

Обычно я использую некоторые поисковые системы репозитория maven, такие как this , чтобы узнать <dependency> библиотек / frameworks / tools, которые я хочу использовать, и затем вставлю их в pom.xml

Если в центральном репозитории Maven существует зависимость, все будет хорошо, и она будет загружена в ваш локальный репозиторий. Однако, если некоторые из <dependency> (например, Hibernate) не могут быть найдены и загружены из центрального репозитория Maven, вы можете попробовать посетить его официальный сайт, чтобы найти его ссылку на репозиторий и вставить их в раздел <repository> вашего pom.xml . Например, Hibernate требует определить хранилище jboss в pom.xml следующим образом:

<repositories>
        <repository>
            <id>repository.jboss.org</id>
            <name>JBoss Repository</name>
            <url>http://repository.jboss.org/nexus/content/groups/public-jboss</url>
           <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>     
        </repository>        
 </repositories>

Вы можете обратиться к this для использования <repository>

2 голосов
/ 04 декабря 2011

M2e по умолчанию ищет в центральном хранилище maven артефакты. Он загружает индексный файл с деталями артефактов. Вы можете настроить поиск дополнительных хранилищ, указав их в разделе хранилище файла settings.xml . Обратите внимание, что в некоторых репозиториях этот индексный файл отсутствует.

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