Статьи

Разместите артефакты Maven с помощью хранилища BLOB-объектов Azure.

Если вы используете Microsoft Azure и Java для своих проектов, то хранилище BLOB-объектов Azure — отличное место для размещения артефактов ваших команд.

Это легко установить и довольно дешево. Кроме того, это гораздо проще, чем установить один из существующих параметров хранилища (jfrog, nexus, archiva и т. Д.), Если вас не особенно интересуют их возможности.

Для начала вам нужно указать универсал maven, который поддерживает хранение больших двоичных объектов. Мы будем использовать хранилище Azure .

Давайте начнем с создания проекта Maven

1
mvn archetype:generate -DgroupId=com.test.apps -DartifactId=AzureWagonTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Мы собираемся добавить простой сервис.

1
2
3
4
5
6
7
8
9
package com.test.apps;
 
public class HelloService {
 
    public String sayHello() {
 
        return "Hello";
    }
}

Затем мы добавим универсал maven, который будет загружать и извлекать наши двоичные файлы в хранилище Azure BLOB-объектов.

1
2
3
4
5
6
7
8
9
<build>
        <extensions>
            <extension>
                <groupId>com.gkatzioura.maven.cloud</groupId>
                <artifactId>azure-storage-wagon</artifactId>
                <version>1.0</version>
            </extension>
        </extensions>
    </build>

Затем мы создадим учетную запись хранения Azure, в которой будут размещаться наши артефакты.

Затем мы создадим новый контейнер с именем snapshot. Этот контейнер будет содержать наши репозитории снимков.

Мы можем пройти тот же процесс, чтобы создать репозиторий релизов.
Помните, что нет необходимости создавать разные контейнеры для каждого хранилища. Вы можете иметь репозитории в одном контейнере.

Теперь, когда мы настроили нашу учетную запись хранения в Azure, мы установим управление распределением для нашего проекта maven.

01
02
03
04
05
06
07
08
09
10
<distributionManagement>
        <snapshotRepository>
            <id>my-repo-bucket-snapshot</id>
            <url>bs://mavenrepository/snapshot</url>
        </snapshotRepository>
        <repository>
            <id>my-repo-bucket-release</id>
            <url>bs://mavenrepository/release</url>
        </repository>
    </distributionManagement>

Из мавенской документации

Если в качестве элемента repositories в POM указано местоположение и способ, которым Maven может загружать удаленные артефакты для использования в текущем проекте, то distributionManagement указывает, где (и как) этот проект попадет в удаленный репозиторий при его развертывании. Элементы репозитория будут использоваться для распространения моментальных снимков, если snapshotRepository не определен.

Следующий шаг является наиболее важным, и это связано с аутентификацией в Azure.

Что вам нужно, это имя вашей учетной записи хранения и ключ учетной записи хранения.
Чтобы получить оба, вам нужно перейти к ключам доступа вашей учетной записи хранения в разделе «Настройки».

Затем мы укажем учетные данные нашей учетной записи хранения в ~ / .m2 / settings.xml

01
02
03
04
05
06
07
08
09
10
11
12
<servers>
    <server>
      <id>my-repo-bucket-snapshot</id>
      <username>mavenrepository</username>
      <password>eXampLEkeyEMI/K7EXAMP/bPxRfiCYEXAMPLEKEY</password>
    </server>
    <server>
      <id>my-repo-bucket-release</id>
      <username>mavenrepository</username>
      <password>eXampLEkeyEMI/K7EXAMP/bPxRfiCYEXAMPLEKEY</password>
    </server>
  </servers>

Помните, что вы должны указать учетные данные для каждого указанного репозитория.

А теперь самая легкая часть, которая развертывается.

1
mvn deploy

Теперь, когда ваш артефакт был развернут, вы можете использовать его в другом репо, указав свой репозиторий и свой вагон.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<repositories>
        <repository>
            <id>my-repo-bucket-snapshot</id>
            <url>bs://mavenrepository/snapshot</url>
        </repository>
        <repository>
            <id>my-repo-bucket-release</id>
            <url>bs://mavenrepository/release</url>
        </repository>
    </repositories>
 
    <build>
        <extensions>
            <extension>
                <groupId>com.gkatzioura.maven.cloud</groupId>
                <artifactId>azure-storage-wagon</artifactId>
                <version>1.0</version>
            </extension>
        </extensions>
    </build>

Это оно! Следующее, что вы знаете, ваш артефакт будет загружен maven через хранилище BLOB-объектов Azure и использован в качестве зависимости в вашем новом проекте.

Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. См. Оригинальную статью здесь: размещайте артефакты maven с помощью хранилища BLOB-объектов Azure.

Мнения, высказанные участниками Java Code Geeks, являются их собственными.