【问题标题】:Eclipse doesn't see classes from target/generated-sourcesEclipse 看不到来自目标/生成源的类
【发布时间】:2017-02-23 13:13:05
【问题描述】:

我有一个包含多个项目的解决方案(maven 父 pom 和几个子 maven 项目)。其中一些项目只是一个使用 xjc-schema maven 插件从 wsdl 或 xsd 生成类的 maven 项目。 该插件在 target/generated-sources 文件夹中生成类。 现在解决方案中的其他项目必须使用生成的类,但 eclipse 无法识别生成的类。

Intellij Idea 没问题,它可以识别生成的类,但是我想用 Eclipse。

我用 Eclipse Neon 和基于 Neon 的 Spring Tool Suite 进行了尝试。

我尝试刷新、重新启动等,但没有成功。 还尝试将具有生成类的项目添加到必须使用这些类的项目的 Java 构建路径 -> 项目中。

【问题讨论】:

  • 不应该将生成的类放在与“target”不同的目录中吗?
  • 生成的类的位置(文件夹)是源文件夹吗?
  • @MatthiasSchmidt 谢谢,就是这样。当我将该文件夹添加为源文件夹时,它看起来不错。如果你把它作为一个答案 - 我会接受。

标签: java eclipse maven


【解决方案1】:

您应该将生成的类的文件夹设为源文件夹。

【讨论】:

  • 我在 nar-maven-plugin 管理的 JNI 项目中遇到了类似的问题,该项目会动态生成一个用于加载本机库的类。将其设置为源文件夹可以在构建后解决问题,但它会产生一个新问题,即 Eclipse 在 maven clean 或首次从源代码管理下载时认为该文件夹丢失(因为排除了目标下的所有内容)。有没有办法抑制按照这个建议创建的新错误?
【解决方案2】:

还要确保在 java 构建路径上正确设置了输出文件夹。如果将Contains Test Sources 设置为Yes,则无法从您的主类中检测到生成的类。

【讨论】:

    【解决方案3】:

    如果您已经看到 target/generated-sources/... 作为 Eclipse 中的源文件夹,但 IDE 仍然不知道生成的类,请转到配置构建路径...并检查是否没有排除模式集。这导致了我的问题。

    【讨论】:

      【解决方案4】:

      我在将target/generated-sources 设置为源文件夹时遇到问题。我有一个包含生成类的子文件夹,但 target/generated-sources 设置为源文件夹。不过,Eclipse 并没有读取该子文件夹。我删除了 target/generated-sources 并添加了 target/generated-sources/<subfolder> 并且它起作用了。

      【讨论】:

        猜你喜欢
        • 2017-12-21
        • 1970-01-01
        • 2017-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-12
        • 2012-01-26
        • 1970-01-01
        相关资源
        最近更新 更多