Сгенерированный файл протокола создает целевой источник с ошибкой

Я попытался создать проект, который подключается к БД, берет информацию и выводит ее в настольное приложение через grpc. Но когда я компилирую его, я получаю сообщение «Ошибка: (20,18) java: не удается найти символ» в целевом файле (который автоматически создается протоколом. Я не могу понять, в чем проблема. Я попытался изменить компилятор mvn, чтобы изменить версию на протоколе, установить другой JDK, все становится только хуже, чем это уже есть.

Мой проект можно посмотреть здесь: https://github.com/Diana-Ioana/grpc Моя база данных и ошибка с сгенерированными целевыми файлами, которая дает сбой: https://imgur.com/a/T6taLXF

Я понятия не имею, что мне теперь делать. Любая помощь будет большой, спасибо!


person Diana G    schedule 27.11.2019    source источник


Ответы (1)


Похоже, что «не удается найти символ» относится к javax.annotation.Generated. В этом случае вы можете добавить зависимость от annotations-api:

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>annotations-api</artifactId>
        <version>6.0.53</version>
        <!-- Generated has @Retention(SOURCE), so not needed at runtime -->
        <scope>provided</scope>
    </dependency>

Первоначально в этом ответе предлагался javax.annotation-api, но эта библиотека имеет лицензию CDDL, поэтому gRPC изменил свой рекомендация.

    <!-- The old suggestion. Uses CDDL-licensed library -->
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
    </dependency>
person Eric Anderson    schedule 27.11.2019
comment
Спасибо! Поскольку maven не закрасил строку с проблемой, я не мог понять, почему она не работает. - person Diana G; 28.11.2019