Почему Eclipse m2e автоматически не добавляет сгенерированную исходную папку в classpath?

#java #eclipse #maven #m2eclipse #m2e

#java #eclipse #maven #m2eclipse #m2e

Вопрос:

Я использую 2018-12 с Java 8, но сам Eclipse я запускаю с Java 11.

У меня есть версия «1.10.0.20181127-2120» плагина m2e.

У меня есть куча проектов с похожими характеристиками. Проекты Maven запускаются с Spring Boot. Все они хранятся в git.

По какой-то причине один из этих проектов был несколько поврежден сегодня утром. Она все равно будет нормально создаваться из командной строки. Eclipse все еще знала, что это проект maven, но у него не было исходных папок. Файл .classpath не был пустым, он был просто очень минимальным.

Я решил эту конкретную проблему, просто скопировав файл .classpath из аналогичного проекта в этот проект. Это устранило большинство проблем, но я вспомнил, что в этом проекте используется плагин генератора кода вместе с «build-helper-maven-plugin», чтобы указать, где генерируется исходный код. Я обнаружил, что в Eclipse не было сгенерированной папки sources в качестве исходной папки. Я думал, что добавление ссылки «build-helper-maven-plugin» было тем, что мне нужно было сделать, чтобы заставить Eclipse M2E автоматически определять это, но, похоже, это не работает.

Как только я вручную добавил сгенерированную папку sources в качестве исходной папки, это устранило последние ошибки компиляции.

Надеюсь, это релевантный отрывок из моего pom:

         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>${project.build.directory}/java-gen</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.jsonschema2pojo</groupId>
            <artifactId>jsonschema2pojo-maven-plugin</artifactId>
            <version>0.4.34</version>
            <configuration>
                <sourcePaths>
                    <sourcePath>${basedir}/src/main/schema/...</sourcePath>
                    <sourcePath>${basedir}/src/main/schema/...</sourcePath>
                </sourcePaths>
                <targetPackage>...</targetPackage>
                <annotationStyle>jackson2</annotationStyle>
                <useCommonsLang3>true</useCommonsLang3>
                <useDoubleNumbers>true</useDoubleNumbers>
                <includeAccessors>true</includeAccessors>
                <includeAdditionalProperties>true</includeAdditionalProperties>
                <sourceType>jsonschema</sourceType>
                <generateBuilders>true</generateBuilders>
                <includeJsr303Annotations>true</includeJsr303Annotations>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
  

Обновить:

Удаление проекта Eclipse и повторный импорт из git не имели никакого значения. Тот же результат.

Комментарии:

1. Я уже пробовал это. Никакой разницы. Я обновлю сообщение этим утверждением.

2. Проверьте эффективный pom.

3. Для чего проверять эффективный pom?