Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
onixred
7 лет назад

Записки юного разработчика, знакомство с bitbucket часть 3 [свой репозиторий]

Всем привет, я давно не радовал вас новыми фичами. Сегодня я расскажу как на bitbucket создать свое хранилище библиотек.

Не так давно я рассказывал о том как создать свою аннотацию, сегодня я расскажу как ее использовать в качестве библиотеки.

Для начала нам нужен новый репозиторий(он будет выполнять роль maven-хранилища), я уже писал как легко на bitbucket создать репозиторий. Создаем открытый\закрытый репозиторий я создал вот этот (создан для голоса открытый у меня есть еще мой личный без постфикса golos, но он закрыт).

Теперь открываем наш проект с аннотацией и изменяем pom.xml

<distributionManagement>
        <repository>
            <id>releases</id>
            <name>releases</name>
            <url>git:releases://git@bitbucket.org:onixred/maven-repo-golos.git</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>snapshots</name>
            <url>git:snapshots://git@bitbucket.org:onixred/maven-repo-golos.git</url>
        </snapshotRepository>
</distributionManagement>

Тег distributionManagement предназначен для указания локального репозитория.
Разберем подробнее что означает строка
<url>git:releases://git@bitbucket.org:onixred/maven-repo-golos.git</url>
releases - ветка для релизных версий
snapshots - ветка для промежуточных версий
git@bitbucket.org: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

37
497.924 GOLOS
На Golos с December 2016
Комментарии (1)
Сортировать по:
Сначала старые