Создать локальный репозиторий Maven

Я хочу создать локальный репозиторий Maven. Я сделал следующие шаги:

  1. Установлен плагин maven в Eclipse
  2. Создал локальный репозиторий одной папки на сервере apache, который доступен по адресу http:/// localrepository
  3. В моем проекте pom.xml я предоставил

    <repositories>
        <repository>
            <id>repository</id>
            <url>http://<my-domain>/localMavenRepository</url>
        </repository>
    </repositories>
    

Но это не разрешает jar, которые находятся на http:///localMavenRepository

Нужно ли предоставлять репозиторий?

5 ответов

Решение

Вы не можете создать частный репозиторий таким образом. Проверьте эту статью: http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository.

Я использую версию Artifactory с открытым исходным кодом.

Я должен возразить Стэнли, это должно сработать так. В то время как статья, на которую ссылаются Стэнли, приводит к более мощным настройкам, если вам нужен простой базовый репозиторий, то для обеспечения репозитория можно использовать только Apache с конфигурацией по умолчанию.

Чтобы настроить внутренний репозиторий, просто необходимо иметь место для его размещения, а затем начать копировать туда необходимые артефакты, используя ту же компоновку, что и в удаленном репозитории, таком как repo.maven.apache.org. Источник

Ключевым моментом является то, что вам нужна правильная структура папок, и хотя документы не упоминают об этом так явно... Это та же структура, что и в локальном хранилище.

Добавьте файл в свой репозиторий следующим образом:

mvn install:install-file -Dfile=YOUR_JAR.jar -DgroupId=YOUR_GROUP_ID -DartifactId=YOUR_ARTIFACT_ID -Dversion=YOUR_VERSION -Dpackaging=jar -DlocalRepositoryPath=/var/www/html/mavenRepository

Предполагая, что корень документа для example.com на вашем Apache /var/www/html/ это приведет к тому, что "YOUR_JAR.jar" будет доступен для maven в репозитории, настроенном с <url>http://example.com/mavenRepository</url>

Да, ты можешь! Для простого репозитория, который только публикует / извлекает артефакты, вы можете использовать nginx.

  1. Убедитесь, что в nginx включен модуль http dav, но, тем не менее, проверьте его.

  2. Сконфигурируйте модуль nginx http dav:

    В Windows: d: \ servers \ nginx \ nginx.conf

    location / {
        # maven repository
        dav_methods  PUT DELETE MKCOL COPY MOVE;
        create_full_put_path  on;
        dav_access  user:rw group:rw all:r;
    }
    

    В Linux (Ubuntu): / etc / nginx / sites-available / default

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            # try_files $uri $uri/ =404;  # IMPORTANT comment this
            dav_methods  PUT DELETE MKCOL COPY MOVE;
            create_full_put_path  on;
            dav_access  user:rw group:rw all:r;
    }
    

    Не забудьте дать разрешения директории, в которой будет находиться репо:

    sudo chmod +777 /var/www/html/repository

  3. В вашем проекте pom.xml добавьте соответствующую конфигурацию:

    Получить артефакты:

    <repositories>
        <repository>
            <id>repository</id>
            <url>http://<your.ip.or.hostname>/repository</url>
        </repository>
    </repositories>
    

    Опубликовать артефакты:

    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-http</artifactId>
                <version>3.2.0</version>
            </extension>
        </extensions>
    </build>
    <distributionManagement>
        <repository>
            <id>repository</id>
            <url>http://<your.ip.or.hostname>/repository</url>
        </repository>
    </distributionManagement>
    
  4. Для публикации артефактов используйте mvn deploy, Чтобы получить артефакты, maven сделает это автоматически.

И там у вас есть простой репозиторий Maven.

Другой способ - включить вашу банку в локальный репозиторий maven.

Смотрите здесь для простого примера.

Если maven не создает Локальный репозиторий, т.е. папка.m2/repository, попробуйте следующий шаг.

В Eclipse\Spring Tool Suite перейдите в Окно-> Настройки-> Maven-> Настройки пользователя-> нажмите Восстановить значения по умолчанию-> Применить-> Применить и закрыть

Другие вопросы по тегам