Как запустить пример akka grp c java - PullRequest
1 голос
/ 11 февраля 2020

Хорошо, следуя предварительным условиям и инструкциям по использованию Java 8, создание проекта работает.

sbt new akka/akka-grpc-quickstart-java.g8

Затем продолжаем с гидом

./gradlew compileJava также работает.

, но затем ./gradlew --info runServer завершается с ошибкой / проблемами:

Task ':runServer' is not up-to-date because:
Task has not declared any outputs.

и

Error: Main method not found in class com.example.helloworld.GreeterServer, please define the main method as:
   public static void main(String[] args)

ОРИГИНАЛЬНЫЙ ПОСТ:

У меня проблемы с запуском примера Akka-GRP C. Я попробовал следовать этому руководству здесь , но когда я загружаю пример проекта, он кажется неполным.

То есть вывод команды дерева:

.
├── build.sbt
├── project
│   ├── build.properties
│   └── plugins.sbt
├── sbt
├── sbt.bat
└── sbt-dist
    ├── bin
    │   ├── sbt
    │   ├── sbt.bat
    │   ├── sbt-launch.jar
    │   └── sbt-launch-lib.bash
    └── conf
        ├── sbtconfig.txt
        └── sbtopts

4 directories, 11 files

Нет исходных файлов или gradlew oder pom. xml в структуре проекта.

Затем я клонировал репозиторий этого примера из GitHub и следовал инструкциям в readme, в основном, команде sbt new akka/akka-grpc-quickstart-java.g8. * 1038. *

$ sbt new akka/akka-grpc-quickstart-java.g8
[info] Loading settings for project akka-grpc-quickstart-java-g8-build from paradox.sbt,giter8.sbt ...
[info] Loading project definition from /home/johannes/IdeaProjects/akka-grpc-quickstart-java.g8/project
error: error while loading String, class file '/modules/java.base/java/lang/String.class' is broken
(class java.lang.NullPointerException/null)
[error] java.io.IOError: java.lang.RuntimeException: /packages cannot be represented as URI
...//had to remove stacktrace was too long for this post
[error]     at xsbt.boot.Boot.main(Boot.scala)
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? [error] java.io.IOError: java.lang.RuntimeException: /packages cannot be represented as URI
[error] Use 'last' for the full log.

затем я зашел в папку project / sources ./src/main/g8/, где находятся исходные файлы, и попытался следовать инструкциям из этого руководства. Это также не сработало из-за некоторых ошибок в свойствах:

Перед этим мне нужно было установить другую версию Gradle (6.1.1, была 4.5.1) в ./gradle/wrapper/gradle-wrapper.properties, чтобы сделать он совместим с Java 13.

$ ./gradlew compileJava

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'g8'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not find gradle.plugin.com.lightbend.akka.grpc:akka-grpc-gradle-plugin:$akka_grpc_version$.
     Searched in the following locations:
       - file:/home/johannes/.m2/repository/gradle/plugin/com/lightbend/akka/grpc/akka-grpc-gradle-plugin/$akka_grpc_version$/akka-grpc-gradle-plugin-$akka_grpc_version$.pom
       - https://plugins.gradle.org/m2/gradle/plugin/com/lightbend/akka/grpc/akka-grpc-gradle-plugin/$akka_grpc_version$/akka-grpc-gradle-plugin-$akka_grpc_version$.pom
     Required by:
         project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s

Пытаясь хотя бы временно заставить это работать, я жестко закодировал свойства в файл build.gradle:

     //classpath 'gradle.plugin.com.lightbend.akka.grpc:akka-grpc-gradle-plugin:$akka_grpc_version$'
     classpath 'gradle.plugin.com.lightbend.akka.grpc:akka-grpc-gradle-plugin:0.7.3'

Но это также только до меня дошло:

$ ./gradlew compileJava

FAILURE: Build failed with an exception.

* Where:
Build file '/home/johannes/IdeaProjects/akka-grpc-quickstart-java.g8/src/main/g8/build.gradle' line: 20

* What went wrong:
A problem occurred evaluating root project 'g8'.
> Failed to apply plugin [id 'com.google.protobuf']
   > Could not create an instance of type com.google.protobuf.gradle.ProtobufSourceDirectorySet.
      > 'void org.gradle.api.internal.file.DefaultSourceDirectorySet.<init>(java.lang.String, java.lang.String, org.gradle.api.internal.file.FileResolver, org.gradle.api.internal.file.collections.DirectoryFileTreeFactory)'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

Снова не удалось включить целую трассировку стека из-за ограничения символов.

Чего мне не хватает? Какой подход я должен продолжить?

1 Ответ

1 голос
/ 17 февраля 2020

РЕДАКТИРОВАТЬ: Между тем, запрос на прием был принят, и основной репо (https://github.com/akka/akka-grpc-quickstart-java.g8) обновлен.

Я загрузил проект, используя sbt new ... , но в pom произошла ошибка. xml (исправлена ​​версия: https://github.com/olitazl/akka-grpc-quickstart-java.g8)

В примере проекта отсутствует модификатор public внутри GreeterServer class.

Поэтому вы должны добавить public к классу GreeterServer и метод main внутри.

    public class GreeterServer ...
    public static void main(...)

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

...