Настроить удаленный FTP как удаленный репозиторий Maven? - PullRequest
1 голос
/ 25 апреля 2011

Мы работаем с maven уже довольно давно, и мы пытаемся поднять его на следующий уровень ...

Есть пара Jar-файлов, которые мы хотели бы разрешить доступтолько людям в нашей организации.Итак, сначала мы все ссылались на ту же общую папку, что и наш локальный репозиторий в файле settings.xml, и какое-то время было приятно, когда один человек работал над одним проектом.

Теперь мы будемхотелось бы иметь свой собственный «Удаленный репозиторий», если так он называется, удаленный FTP, который будет содержать репозиторий, с HTTP-доменом, который указывает на папку репозитория на этом FTP.

По какой-то причине мыМожно развернуть Jar, Sources и JavaDocs, но мы не можем перестроить индексы репозитория.Мы предполагаем, что для репозитория FTP требуются какие-то файлы индексации, но мы не можем создать их с помощью Nexus или Artifactory.(У нас есть что-то принципиально неправильное в нашем понимании удаленных репозиториев)

Итак, наш вопрос в том, что мы делаем неправильно ?

Ошибкамы продолжаем получать из Eclipse:

Невозможно обновить индекс для репозитория | http://domain -referring-to-the-ftp-repository-folder

Мы обновили нашsettings.xml to:

<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository>
    c:\localRepository\
</localRepository>
<servers>
    <server>
        <username>user</username>
        <password>pass</password>
        <id>rep-id</id>
    </server>
</servers>
<mirrors>
    <mirror>
        <mirrorOf>rep-id</mirrorOf>
        <name>My Repository</name>
        <url>http://domain-referring-to-the-ftp-repository-folder</url>
        <id>repository</id>
    </mirror>
</mirrors>
</settings>

Просто чтобы убедиться, что вот конфигурация развертывания , которая работает , и разверните, как описано выше:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <altDeploymentRepository>rep-id::default::ftp://x.x.x.x/repository</altDeploymentRepository>
            </configuration>
        </plugin>

Заранее спасибо

Адам.

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Общий доступ к локальному репозиторию действительно плох: локальный репозиторий следует рассматривать как частный кэш Maven, работающий на компьютере разработчика ... Для начала, он вовсе не безопасен для параллелизма, поэтому вам нужно быть удачливым (или работать на самом деле не чередование проектов), чтобы до сих пор не было проблем с вашей первоначальной настройкой.

Ваша идея об удаленном репозитории хорошая, но есть некоторые проблемы с его реализацией. MRM (менеджер хранилища Maven, и Artifactory, и Nexus - это MRM и многие другие) решат все ваши проблемы.

Для начала я бы порекомендовал прочитать некоторые из них: http://www.sonatype.com/books/nexus-book/reference/ http://www.sonatype.com/books.html

И некоторые блоги: http://www.sonatype.com/people/2011/04/how-not-to-download-the-internet/

В двух словах: для транспорта используйте HTTP для достижения наилучших результатов. Maven и MRM имеют лучшую поддержку для этого. Если у вас есть MRM, вам не нужно никаких «инфра» рядом с ним, как, например, сервер FS с демоном HTTPd или FTP, поскольку сами MRM не только размещают ваши развертывания, они делятся ими с вашими товарищами по команде, но и с прокси, защищают их, индексируют их и т. д.

Из вашего вопроса неясно, почему вы развертываете с использованием FTP (ни одна из MRM не поддерживает транспорт FTP, по крайней мере AFAIK), где находятся ваши артефакты и многие другие детали. Читайте документы и создайте красивую и уютную экосистему для своего магазина!

Удачи!

Примечание: как Nexus, ведущий разработчик, я связан с Sonatype и Nexus.

2 голосов
/ 26 апреля 2011

В вашем ftp-репозитории нет индексного файла репозитория, который запрашивает m2eclipse.Отсюда и сообщение.

Само по себе сообщение не о чем беспокоиться.Зависимости в этом хранилище должны быть загружены, если groupId / projectId указан правильно / явно.

Возможно, вы захотите посмотреть этот связанный SO пост и ссылку, указанную в нем.

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