Как собрать Protobuf для Java в Windows через Eclipse - PullRequest
5 голосов
/ 01 декабря 2011

Я загружаю исходный zip-файл Protobuf. Затем я открываю свой классический Eclipse и выбираю Файл-> Импорт-> Существующие проекты Maven.

Я выбираю корневую папку для / java. Это показывает, что pom.xml отмечен, выберите Next.

На экране появляется сообщение: Настройка подключаемых подключаемых модулей Maven: с

maven-antrun-plugin:1.3:run (2 errors):
No marketplace entries found to handle maven-antrun-plugin:1.3:run in Eclipse. Please see Help for more information.

Я что-то здесь упускаю?

Ответы [ 2 ]

6 голосов
/ 08 марта 2012

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

Выполнение плагина не охватывается конфигурацией жизненного цикла: org.apache.maven.plugins: maven-antrun-plugin: 1.3: run (выполнение: генерировать-источники, фаза: генерировать-источники)

Если это так, то причина в том, что ваша текущая конфигурация не поддерживает maven-antrun. Вы можете найти связанный вопрос здесь: Как решить «Выполнение плагина, не охваченное конфигурацией жизненного цикла» для сборок Spring Data Maven

Объяснение проблемы можно найти здесь: http://wiki.eclipse.org/M2E_plugin_execution_not_covered

Простой способ решить? Добавление следующего блока кода в ваш файл pom.xml:

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <versionRange>[1.0.0,)</versionRange>
                <goals>
                  <goal>run</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <execute>
                  <runOnIncremental>false</runOnIncremental>
                </execute>
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

После некоторого обычного обновления конфигурации проекта Maven очистите и перестройте все, проблема pom исчезнет.

Но тогда вы, вероятно, получите ошибку об отсутствующих классах. Вы должны загрузить двоичный файл protoc и выполнить его для всех файлов .proto, которые вы можете найти в каталоге исходных текстов. Пример: * 1 023 *

protoc --java_out=src/main/java -I../src ..\ src\google\protobuf\descriptor.proto
0 голосов
/ 31 октября 2017

Ниже приведен скрипт bash, который поможет вам скомпилировать все эти прото-файлы.Выполните скрипт в каталоге java.

#/bin/bash
for proto_file in ../src/google/protobuf/*.proto; do
    echo "generating java source from $proto_file"
    protoc --java_out=core/src/main/java -I../src $proto_file
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...