Eclipse не распознает сгенерированный класс - PullRequest
0 голосов
/ 21 марта 2019

Я использовал плагин Maven для генерации классов в моем проекте.Однако даже после попытки явного заполнения его из пути сборки проекта Eclipse не может его распознать.В нем говорится:

«AbcBaseListener не может быть преобразован в тип»

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here ПроектАвтоматическая сборка также включена.

1 Ответ

1 голос
/ 21 марта 2019

Отметьте 2 вещи:

1) Важным указанием здесь является "папка класса".Eclipse ожидает, что .class файлов там, исходный код будет игнорироваться.

Чтобы это исправить, добавьте этот плагин в POM:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>target/generated-sources/</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

и обновите проект (Maven -> Update...).

Другой вариант - вручную добавить еще одну исходную папку в путь сборки, но она будет потеряна при каждом обновлении m2e конфигурации проекта из POM.

2) Убедитесь, что ваши сгенерированные файлы имеют имена пакетов;

Используйте код ниже в вашем файле g4 после грамматики Abc ;

@header {
    package antlr4;
}
...