Добавляем зависимость в maven репозиторий на своём сервере

Подготавливаем сервер
В корне сайта необходимо создать папку maven2 и для неё включить листинг директорий.
  1. mkdir /var/www/example.com/maven2
Для Apache:
  1. <Directory /var/www/example.com/maven2>
  2.   Options +Indexes
  3. </Directory>
Для nginx:
  1. # /etc/nginx/sites-available/example.com
  2. location /maven2 {
  3.     autoindex on;
  4. }
Не забудьте перезапустить сервис.

Получаем нечто подобное: https://annimon.com/maven2/
Подготавливаем библиотеки
1. Собираем jar, можно с зависимостями (shadowJar). Либо берём готовый jar, который хотим добавить в maven.
2. В -Dfile указываем путь к jar и заполняем необходимые для maven поля: groupId, artifactId, version:
  1. mkdir /tmp/tempmavendir
  2. mvn install:install-file -Dfile=com.example.jar \
  3.   -DgroupId=com.example -DartifactId=library1 -Dversion=1.0 \
  4.   -Dpackaging=jar -DgeneratePom=true -DperformRelease=true -DcreateChecksum=true \
  5.   -DlocalRepositoryPath=/tmp/tempmavendir
3. Переименовываем maven-metadata-local.xml и генерируем хэши:
  1. cd /tmp/tempmavendir/com/example/library1
  2. mv maven-metadata-local.xml maven-metadata.xml
  3. md5sum maven-metadata.xml > maven-metadata.xml.md5
  4. sha1sum maven-metadata.xml > maven-metadata.xml.sha1
4. Перемещаем содержимое /tmp/tempmavendir (то есть папку com, org и.т.п.) на сервер в папку maven2

Теперь можно использовать этот репозиторий в своих проектах.
  1. <!-- pom.xml -->
  2. <project>
  3. ...
  4.   <repositories>
  5.     <repository>
  6.       <id>example-repo</id>
  7.       <name>example.com repository</name>
  8.       <url>http://example.com</url>
  9.     </repository>
  10.   </repositories>
  11. ...
  12. </project>
  1. // build.gradle
  2. repositories {
  3.     mavenCentral()
  4.     maven {
  5.         url 'http://example.com/maven2'
  6.     }
  7. }

Реклама

Мы в соцсетях

tw tg yt gt