为什么Eclipse m2e不自动将生成的源文件夹添加到classpath?

时间:2019-03-21 16:47:17

标签: java eclipse maven m2eclipse m2e

我将Java-12与2018-12一起使用,但将Java 11与Eclipse本身一起运行。

我有m2e插件的版本“ 1.10.0.20181127-2120”。

我有很多具有相似特征的项目。 Maven项目使用Spring Boot运行。它们都存储在git中。

由于某种原因,这些项目中的一个在今天早上有点脑部受损。它仍然可以从命令行构建良好。 Eclipse仍然知道这是一个Maven项目,但是它没有源文件夹。 .classpath文件不是空的,只是很小。

通过将.classpath文件从类似项目中复制到该项目中,我解决了这个特殊问题。这解决了大多数问题,但是我记得这个项目使用了一个代码生成器插件以及“ build-helper-maven-plugin”来指示源的生成位置。我发现Eclipse没有将生成的源文件夹作为源文件夹。我以为添加“ build-helper-maven-plugin”引用是使Eclipse M2E自动检测到这一点所需的操作,但是它似乎没有用。

一旦我手动将生成的源文件夹添加为源文件夹,就会清除上一次编译错误。

这是从我的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重新导入没有区别。结果相同。

0 个答案:

没有答案