Привет народ! В этой статье мы рассмотрим, как скомпилировать буферы протокола, используя Maven. Мы предполагаем, что читатель имеет базовое представление о буферах протокола и Maven.
Google разработал протокол буфера для использования в своих внутренних службах. Это двоичный формат кодирования, который позволяет вам указать схему для ваших данных, используя язык спецификации, например:
Protobuf
xxxxxxxxxx
1
message Person {
2
required int32 id = 1;
3
required string name = 2;
4
optional string email = 3;
5
}
Фрагмент кода определяет схему для Person
типа данных , который имеет три поля: id
, name
, и email
. В дополнение к именованию поля вы можете указать тип, который будет определять способ кодирования и отправки данных по сети — выше мы видим int32
тип и string
тип. Также предоставляются ключевые слова для проверки и структуры ( required
и optional
выше), а поля нумеруются, что способствует обратной совместимости. Вы можете прочитать больше о буферах протокола по этой ссылке https://developers.google.com/protocol-buffers .
Вам также может понравиться:
Использование буферов протокола Google с Java
Предпосылки
Прежде чем идти дальше, вам необходимо установить следующие инструменты.
Java SDK
Первым шагом является загрузка и установка Java. В этом уроке мы будем генерировать код для Java.
специалист
Далее мы скачиваем и устанавливаем Apache Maven. Процесс установки достаточно прост, поэтому я не буду вдаваться в подробности. Пожалуйста, не стесняйтесь задавать вопросы в комментариях или на форуме, если вы застряли.
Джава
xxxxxxxxxx
1
# Run this command to check the correct version of Maven is installed, in the path
2
$mvn --version
3
# It should echo the following line among other output.
4
Apache Maven 3.X.X ....
Компилятор протокола буфера
Вам нужно будет установить компилятор буфера протокола. Подробные инструкции по установке для компилятора буфера протокола можно найти по этой ссылке: https://github.com/protocolbuffers/protobuf .
Тем не менее, основными шагами являются разархивирование пакета, перейдите в каталог в терминале и выполните следующие команды.
Джава
xxxxxxxxxx
1
./configure
2
make
3
sudo make install
4
protoc --version
Maven Protoc Плагин
Чтобы скомпилировать буфер протокола, вам необходимо скомпилировать и установить плагин Maven Protoc. Получив исходный код, вы можете запустить следующие команды для компиляции плагина:
Джава
xxxxxxxxxx
1
cd maven-protoc-plugin
2
mvn clean install
Написание ваших прототипов
Перейдите в каталог src / main / resources или src / main / protobuf, создайте новый файл с именем hello.proto и добавьте следующий текст:
Джава
xxxxxxxxxx
1
message HelloWorld {
2
required string message = 1;
3
}
Мы можем проверить установку компилятора буфера протокола и убедиться, что наш файл действителен, выполнив команду, показанную ниже. Это сгенерирует файл Hello.java.
Джава
xxxxxxxxxx
1
protoc -I=./ --java_out=./ hello.proto
2
ls -l
Генерация исходных файлов
Теперь мы переходим к автоматической генерации исходных файлов, что мы делаем с помощью установленного ранее плагина maven-protoc-plugin. Откройте файл pom в файле protoccompiler / pom.xml, найдите элемент «зависимости» и добавьте следующую зависимость, чтобы получить файлы поддержки буфера протокола.
XML
xxxxxxxxxx
1
<dependency>
2
<groupId>com.google.protobuf</groupId>
3
<artifactId>protobuf-java</artifactId>
4
<version>3.1.0</version>
5
</dependency>
Теперь найдите элемент «plugins» и добавьте определение плагина ниже. Мы вызываем «protoc-jar-maven-plugin», который мы скомпилировали ранее в руководстве, указав его groupId и artifactId. Обратите внимание, что это предполагает, что протокол находится в пути. Если это не так, вы можете указать полный путь к двоичному файлу. Используя «inputDirectories», мы указываем расположение прототипов. Плагин ищет файлы в указанном каталоге с расширением «.proto».
XML
xxxxxxxxxx
1
<build>
2
<plugins>
3
<plugin>
4
<groupId>com.github.os72</groupId>
5
<artifactId>protoc-jar-maven-plugin</artifactId>
6
<version>3.1.0.1</version>
7
<executions>
8
<execution>
9
<phase>generate-sources</phase>
10
<goals>
11
<goal>run</goal>
12
</goals>
13
<configuration>
14
<protocVersion>3.1.0</protocVersion>
15
<inputDirectories>
16
<include>src/main/resources</include>
17
</inputDirectories>
18
</configuration>
19
</execution>
20
</executions>
21
</plugin>
22
</plugins>
После внесения изменений сохраните файл pom и скомпилируйте проект с помощью команды mvn clean install. Вы должны увидеть сгенерированные источники в target / generate-sources.
Вот ссылка на исходный код:
https://github.com/Munandermaan/Compile-Protocol-buffers-using-maven .