Как я могу узнать, откуда у Мэйвена артефакт? - PullRequest
3 голосов
/ 07 июля 2011

Я просто потратил полчаса, работая с коллегой, чтобы выяснить, почему я мог построить проект, когда он (работая из того же источника) не смог.Общее начало истории о Мейвене, я знаю.В любом случае, оказывается, что у нас была зависимость от чего-то вроде org.apache.commons:commons-pool, в то время как репо, на которое мы указывали, предоставлял только commons-pool:commons-pool.Мы оба долго не замечали разницу, пока наконец не поняли.Должно быть, я был в состоянии «увидеть» первого, а он, очевидно, не мог.

Поэтому мой вопрос: как я могу спросить Мэйвена «откуда вы берете X:Y от»?

Бонусные вопросы: если он появляется только в локальном кеше, есть ли способ рассказать, как он туда попал?Могу ли я сказать Maven «только один раз, убедитесь, что все, что вы используете в сборке, также доступно из моего удаленного репо»?

1 Ответ

2 голосов
/ 14 июля 2011

Возможно, в вашем файле settings.xml доступны репозитории, которых нет у вашего друга.

Как сказал Эд Стауб, вы можете попытаться очистить свой локальный репозиторий, выполнив:

mvn dependency:purge-local-repository

После этого попытайтесь загрузить все зависимости вашего проекта, запустив:

mvn dependency:go-offline

Теперь, если у вас есть проблема с последней целью, когда он не может найти, например, артефакт org.apache.commons:commons-pool, вы можете попытаться найти его хранилище, перейдя к http://www.mvnbrowser.com и ища этот артефакт, затем по результатам На странице вы можете выбрать вкладку Хранилища , чтобы увидеть, где можно найти этот артефакт (например, JBoss maven repo).

Получив группу артефактов, id, версию, вы можете добавить репозиторий, в котором он находится, к вашему проекту, добавив текущий контент в ваш pom.xml:

<repositories>
<repository>
<id>repository.jboss.org-public</id>
<name>JBoss repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
</repository>
</repositories>

Тогда, если вы попытаетесь снова загрузить зависимости, теперь это должно сработать.

mvn dependency:go-offline
...