Репозиторий с Maven-проектом не работает - PullRequest
6 голосов
/ 22 ноября 2011

ПОСТАНОВИЛИ П.С. Потому что у меня недостаточно репутации, чтобы ответить на свой вопрос прямо сейчас, поэтому я поставил решение в вопросе.

Я только начал использовать Maven с моим проектом Android. Я использую игровой движок libgdx, его нет в центральном репозитории, поэтому я должен установить его самостоятельно.

После проверки инструкции я использую этот метод. https://stackoverflow.com/q/2230464/531223. Я добавляю ниже определенный код XML в корне pom.xml

<repositories>
<repository>
  <id>my-local-repo</id>
  <url>file://${basedir}/common/repo</url>
</repository>
</repositories>

И установите нужные мне jar-файлы с помощью метода из этого ответа. Однако, когда я выполняю команду mvn install или mvn -o install, она все равно говорит мне, что не может найти файл jar. Я не уверен, что репозиторий, который я добавил в корень pom.xml, работает.
Может кто-нибудь сказать мне, где я допустил ошибку и как проверить, работает ли определенный репозиторий проекта? Спасибо.

Спасибо, Смерть, я понял, это моя глупая ошибка.

В моем проекте у меня 3 модуля. общий андроид и рабочий стол. Я использую Common / Repo Dir в качестве своего хранилища. Вот почему я начинаю использовать Maven. Я сделал все правильно, кроме 2 ошибки.

1. Поместите код репозитория в корень pom.xml, а не в pom.xml в директорию Android, которую я. Я просто думал, что это будет работать, но это не так.

2.Если я поместил код в нужную директорию, я должен изменить URL-адрес, изменился базовый каталог.

Этот урок стоил мне 3 часа ~

Ответы [ 2 ]

15 голосов
/ 22 февраля 2013

Я согласен с ответом Олега, но если проблема не устраняется после всех его шагов, проверьте ваш глобальный файл settings.xml на предмет возможного использования тега.

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

например. ваш pom.xml имеет

<repositories>
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file://${project.basedir}/repo</url>
    </repository>
</repositories>

Убедитесь, что ваш <USER_HOME>\.m2\settings.xml игнорирует его

<mirrors>
    <mirror>
        <id>central</id>
        <name>Central</name>
        <url>http://my.nexus.ip/nexus/content/repositories/central/</url>
        <mirrorOf>!project.local,*</mirrorOf>
    </mirror>
</mirrors>
3 голосов
/ 22 ноября 2011
  1. Запустите mvn help :ffective-pom

  2. Просмотрите раздел <repositories>, найдите свой my-local-repo и найдите его real путь (исключая файл: // префикс)

  3. запустить эту команду (по найденной вами ссылке) mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file -Dfile=/path/to/your.jar -DgroupId=yourGroup -DartifactId=yourArtifactId -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=the_path_you_looked_up_excluding_file://

  4. если(3) выдает ошибки, опубликуйте их здесь, если нет - убедитесь, что папка the_path_you_looked_up_excluding_file:// содержит структуру подпапок grp/yourArtifactId/1.0/ с your.jar там

  5. после всего этого вашего проекта должен быть в состоянии найти зависимость с этим определением

    <dependency>
        <groupId>grp</groupId>
        <artifactId>yourArtifactId</artifactId>
        <version>1.0</version>
    </dependency>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...