powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Google Protocol Buffers
8 сообщений из 8, страница 1 из 1
Google Protocol Buffers
    #39075805
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день\вечер господа!

У меня сложность, я не понимаю как использовать три файла чтоб скомпилировать один:
1 MyProto.proto;
2 https://developers.google.com/protocol-buffers/docs/downloads for windows;
3 protobuf-java-2.6.1.jar from http://mvnrepository.com/artifact/com.google.protobuf/protobuf-java/2.6.1

Собственно есть пример .proto файла, но как получить java класс?

MyProto.proto

option java_package = "example";
option java_outer_classname = "Packet";

message ALogin
{
required string Login =1;
required string Password = 2;
}
...
Рейтинг: 0 / 0
Google Protocol Buffers
    #39075869
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeVan,

Утилита protoc превращает файл *.proto в исходники.

Когда ради интереса ковырял этот protobuf, юзал в конфиге мавена такой плагин (утилита protoc должна быть в PATH, либо полный пусть нужно в executable указать):
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.4.0</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                            <executable>protoc</executable>
                            <workingDirectory>${protobuf.out-dir}</workingDirectory>
                            <arguments>
                                <argument>-I${protobuf.src-dir}</argument>
                                <argument>--java_out=${protobuf.out-dir}</argument>
                                <argument>${protobuf.src-dir}/addressbook.proto</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>



Соответственно в properties было такое:
Код: xml
1.
2.
        <protobuf.src-dir>${project.basedir}/src/main/protobuf</protobuf.src-dir>
        <protobuf.out-dir>${project.build.directory}/generated-protobuf-sources</protobuf.out-dir>



Чтобы сгенеренный код был виден для сборщика, в plugins была такая секция:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.9</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${protobuf.out-dir}</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>



В dependencies была секция из твоей 2-ой ссылки.

Всё работало.
...
Рейтинг: 0 / 0
Google Protocol Buffers
    #39075872
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Где найти саму утилиту protoc - описано в твоей 1-ой ссылке.
...
Рейтинг: 0 / 0
Google Protocol Buffers
    #39075885
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim666,

файл из архива protoc-2.6.1-win32.zip называется protoc.exe. Скорее всего это так.
...
Рейтинг: 0 / 0
Google Protocol Buffers
    #39075888
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim666,
Спасибо за октивность.
У меня проблема в том что я совершенно не понимаю что такое мавен.
Я пользуюсь Intellij IDEA, создаю проекты по умолчанию, вроде это без мавена.
...
Рейтинг: 0 / 0
Google Protocol Buffers
    #39076068
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем пришлось просто перенести готовый к компиляции файл .proto в папку с файлом (компилятором) protoc.exe
далее shift + правая кнопка мыши "открыть окно команд" и набрать : "protoc -I=. --java_out=. MyProto.proto"
соблюдать пробелы типа.

А вот как из Intellij IDEA такое провернуть я так и не понял, даже плагин к ней есть Google protocol Buffers support.

Если найдется лучший вариант буду рад.
...
Рейтинг: 0 / 0
Google Protocol Buffers
    #39076308
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeVan,

Сомневаюсь, что Intellij IDEA не поддерживает maven. Наверняка он уже есть там внутри (mvn или mvn.bat).

Приаттачил архив с тестовым проектом.
По-нормальному ему для сборки даже IDE не нужна. Просто делаешь "mvn clean package" из директории, где будет лежать pom.xml и всё - оно создаст единый protobuf-test.jar, в который будут экспортированы все нужные либы (включая гугловскую protobuf-java-2.6.1). Соответственно запускать потом "java -jar target\protobuf-test.jar" (каждый запуск добавляет в "тестовую базу" по одной записи и перечитывает её).

Можешь экспортировать проект в Intellij IDEA. Уверен, что она "умеет" мавеновские проекты.
...
Рейтинг: 0 / 0
Google Protocol Buffers
    #39076450
freeVan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim666,

Спасибо за ответ.
Очень полезная информация.
IDEA работает с мавеном, но я ни разу не создавал не запускал проекты с помощью него.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Google Protocol Buffers
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]