Создать локальный репозиторий Maven
Я хочу создать локальный репозиторий Maven. Я сделал следующие шаги:
- Установлен плагин maven в Eclipse
- Создал локальный репозиторий одной папки на сервере apache, который доступен по адресу http://
/ localrepository В моем проекте pom.xml я предоставил
<repositories> <repository> <id>repository</id> <url>http://<my-domain>/localMavenRepository</url> </repository> </repositories>
Но это не разрешает jar, которые находятся на http://
Нужно ли предоставлять репозиторий?
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.
Убедитесь, что в nginx включен модуль http dav, но, тем не менее, проверьте его.
Сконфигурируйте модуль 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
В вашем проекте
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>
Для публикации артефактов используйте
mvn deploy
, Чтобы получить артефакты, maven сделает это автоматически.
И там у вас есть простой репозиторий Maven.
Другой способ - включить вашу банку в локальный репозиторий maven.
Смотрите здесь для простого примера.
Если maven не создает Локальный репозиторий, т.е. папка.m2/repository, попробуйте следующий шаг.
В Eclipse\Spring Tool Suite перейдите в Окно-> Настройки-> Maven-> Настройки пользователя-> нажмите Восстановить значения по умолчанию-> Применить-> Применить и закрыть