Всем привет, я давно не радовал вас новыми фичами. Сегодня я расскажу как на bitbucket создать свое хранилище библиотек.
Не так давно я рассказывал о том как создать свою аннотацию, сегодня я расскажу как ее использовать в качестве библиотеки.
Для начала нам нужен новый репозиторий(он будет выполнять роль maven-хранилища), я уже писал как легко на bitbucket создать репозиторий. Создаем открытый\закрытый репозиторий я создал вот этот (создан для голоса открытый у меня есть еще мой личный без постфикса golos, но он закрыт).
Теперь открываем наш проект с аннотацией и изменяем pom.xml
<distributionManagement>
<repository>
<id>releases</id>
<name>releases</name>
<url>git:releases://[email protected]:onixred/maven-repo-golos.git</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>snapshots</name>
<url>git:snapshots://[email protected]:onixred/maven-repo-golos.git</url>
</snapshotRepository>
</distributionManagement>
Тег distributionManagement предназначен для указания локального репозитория.
Разберем подробнее что означает строка
<url>git:releases://[email protected]:onixred/maven-repo-golos.git</url>
releases - ветка для релизных версий
snapshots - ветка для промежуточных версий
[email protected]:onixred/maven-repo-golos.git - путь до хранилища
Теперь подключаем плагин который будет отправлять наш проект в наше maven-хранилище
<pluginRepositories>
<pluginRepository>
<id>synergian-repo</id>
<url>https://raw.github.com/synergian/wagon-git/releases</url>
</pluginRepository>
</pluginRepositories>
Тут особо пояснять нечего просто, если проекта нет в maven хранилище, то нужно указывать где его взять.
добавляем pluginы для того чтобы
- указать под какую версию собрать сборку;
- включить в сборку другие библиотеки;
добавляем расширение для того чтобы закидывать проект в git-хранилище
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>${project.encoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>ar.com.synergian</groupId>
<artifactId>wagon-git</artifactId>
</extension>
</extensions>
</build>
Думаю тут вопросов не возникнет
Теперь нужно настроить git (если у вас он не настроен еще).
Я просто указываю свои данные имя и почту.
Далее нам нужно добавить публичный ключ в наш аккаунт bitbucket
С правой стороны нажимаем на иконку и выберем "Bitbucket settings"
Далее с левой стороны выбираем пункт "ssh-ключи"
Нажимаем кнопку "Добавить ключ"
Вставляем публичный ключ.
Ну вот и все мы почти все сделали
(источник фото )
Теперь осталось зайти в каталог проекта и нажать "mvn clean deploy"
Если мы все сделали правильно в конце мы получим вот такой результат.
Мои поздравления мы закинули наш проект в свое maven-хранилище.
Давайте посмотрим как наш проект выглядит, в хранилище. Заходим bitbucket
Мы видим что появился путь до нашей библиотеки
А вот собственно сама, библиотека как в обычном maven-хранилище.
Теперь давайте подключим эту библиотеку в наш старый проект =)
Для этого в pom.xml добавим нашу новую библиотеку "commons"
<dependencies>
<dependency>
<groupId>ru.maksimov.andrey</groupId>
<artifactId>commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
Сейчас мы видим что maven не может найти ее. Нам нужно указать наше хранилище
<repositories>
<repository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>snapshots</id>
<url>https://api.bitbucket.org/1.0/repositories/onixred/maven-repo-golos/raw/snapshots</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>releases</id>
<url>https://api.bitbucket.org/1.0/repositories/onixred/maven-repo-golos/raw/releases</url>
</repository>
</repositories>
Разберем подробнее строчку https://api.bitbucket.org/1.0/repositories/onixred/maven-repo-golos/raw/snapshots
где
https://api.bitbucket.org/1.0/repositories/ - url как написано в документации
onixred/maven-repo-golos - имя хранилища
snapshots - ветка хранилища
Ура мы сделали это...
А теперь
Я как и обещал покажу как работает аннотация логирования
Изменяем класс Starter. Добавляем Starter SpringBoot и указываем что нужно искать бины в commons
@SpringBootApplication
@ComponentScan(basePackages = {"ru.maksimov.andrey.commons", "onixred.golos" })
public class Starter {
public static void main(String[] args) {
SpringApplication.run(Starter.class, args);
}
}
Создаем контроллер "СommonsController"
@RestController
public class СommonsController {
@RequestMapping("/")
@Loggable
public String index() {
return "golos";
}
}
Контроллер у нас простой просто слушаем корень и отдаем запись "golos"
метод помечаем аннотацией golos @Loggable для демонстрации =)
Добавляем настройки для log4
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
Стартуем проект
Проект запустился теперь идем по адресу http://localhost:8080/ и видим ответ
А теперь смотрим логи
Видим что аннотация сделала свое дело она записала старт и стоп метода index().
Вот и все. в следующий раз я расскажу как на bitbucket можно опубликовать сайт с документацией надеюсь вам понравилось))
Ссылки
maven хранилище на bitbucket для голоса
Проект commons
Проект для голоса коммит [*] Добавлены файлы для bitbucket часть 3
Если есть вопросы предложения задавайте, скоро начну делать бота для голоса)