В некоторых случаях вам нужна частная библиотека, возможно, из-за политики конфиденциальности вашей компании или ваших личных предпочтений. Например, у вас несколько проектов, и вам нужны некоторые общие DTO или общие утилиты. Возможно, было бы хорошим выбором разделить их и сделать для них обычную упаковку для банок.
Для этого урока вам необходимо установить maven и JDK. Если у вас не установлен maven или JDK. Может быть, вы можете попробовать sdkman . Или, в общем, я предпочитаю использовать оболочку maven в своих проектах.
Я собираюсь использовать Повторения для этой цели. Облачный репозиторий maven очень прост в использовании. Итак, давайте сначала создадим общую библиотеку. Вы можете создать проект maven с помощью вашей любимой среды разработки или редактора.
Ваша первоначальная структура проекта будет такой:
- src
- main
- java
- resources
- test
- pom.xml
Во-первых, давайте создадим пакет, который представляет ДВУ нашей компании или наши личные предпочтения. Я собираюсь использовать свой личный домен Github. Вы можете использовать свой или что-то другое. После создания пакета структура каталогов будет примерно такой:
- src
- main
- java
- com
- github
- firatkucuk
- hellomavenlib
- resources
- test
- pom.xml
Хорошо, теперь мы можем создать наш суперсложный библиотечный класс.
package com.github.firatkucuk.hellomavenlib;
public class Hello {
private Hello() {
}
public static String sayHello(final String name) {
return "Hello " + name;
}
}
Для заключительного этапа нам необходимо изменить ваш pom.xml . Необходим окончательный раздел для нашего библиотечного артефакта. Это будет что-то в этом роде.
4.0.0 com.github.firatkucuk hello-maven-lib 1.0 jar
Для перехода к следующему разделу нам необходимо создать учетную запись по адресу Представители . Вы можете напрямую перейти в раздел регистрация . Выберите имя пользователя и пароль, вот и все. Теперь мы можем использовать наш репозиторий maven. Представители автоматически создают для нас частный репозиторий maven с именем по умолчанию .
Возможно, было бы хорошей практикой не хранить пароль репозитория maven в нашей библиотеке maven pom.xml файл. Итак, давайте создадим файл настроек или изменим существующий. В вашей операционной системе должно быть .м2 папка в вашем домашнем каталоге. Если вы еще не использовали maven, возможно, вам придется его создать. Для пользователей Linux ~/.m2 каталог. Если его не существует. Вы можете создать один mkdir ~/.m2 .
Давайте создадим/изменим ~/.m2/settings.xml файл.
repsy firat MY PASSWORD
Пожалуйста, измените свое имя пользователя и пароль разделы. Давайте поместим раздел определения репозитория развертывания в ваш pom.xml файл.
4.0.0 com.github.firatkucuk hello-maven-lib 1.0 jar repsy My Private Maven Repositoty on Repsy https://repo.repsy.io/mvn/firat/default
Пожалуйста, измените URL-адрес вашего репозитория. Это будет что-то вроде: https://repo.repsy.io/mvn/YOUR_USERNAME/default . Теперь мы можем развернуть нашу самую первую частную библиотеку репо.
mvn compile deploy
Это все для части развертывания. Если вы хотите получить доступ к исходному коду этой библиотеки. Вы можете получить доступ с здесь .
Давайте создадим еще один проект с правильной структурой ДВУ.
- src
- main
- java
- com
- github
- firatkucuk
- hellomavenapp
- resources
- test
- pom.xml
и измените свой pom.xml с правильными настройками удаленного репозитория и настройками зависимостей.
4.0.0 com.github.firatkucuk hello-maven-app 1.0 repsy My Private Maven Repositoty on Repsy https://repo.repsy.io/mvn/firat/default com.github.firatkucuk hello-maven-lib 1.0
Пожалуйста, не забудьте изменить URL-адрес вашего репозитория.
Давайте создадим класс java, который использует нашу библиотеку hello.
package com.github.firatkucuk.hellomavenapp;
import com.github.firatkucuk.hellomavenlib.Hello;
public class Main {
public static void main(final String[] args) {
if (args.length > 0) {
Hello.sayHello(args[0]);
} else {
Hello.sayHello("maven");
}
}
}
Давайте скомпилируем наш проект.
mvn compile
Это все, что наше примерное приложение использует удаленный частный репозиторий. Если вы не используете фреймворк, подобный spring, вам нужно взглянуть на некоторые решения fatjar или если вы собираетесь развертываться на сервере приложений Java. Вы можете изменить свою упаковку на war и выполнить компиляцию пакета mvn . Я собираюсь просто скопировать зависимости и выполнить с этой зависимостью.
Давайте запустим плагин зависимостей maven:
mvn compile dependency:copy-dependencies
давайте начнем с определения пути к классу
java -cp target/dependency/hello-maven-lib-1.0.jar:target/classes com.github.firatkucuk.hellomavenapp.Main "World!"
Вы можете получить доступ к исходному коду с здесь
Оригинал: “https://dev.to/fk/creating-private-maven-gradle-repository-2np3”