【问题标题】:IntelliJ can't find generated sources when used in same moduleIntelliJ 在同一模块中使用时找不到生成的源
【发布时间】:2016-01-20 11:59:23
【问题描述】:

我正在使用Google's AutoFactory 的注释处理器。我用@AutoFactory 注释了SomeClass,并在同一个模块的其他地方引用了new SomeClassFactory().create()

Maven 配置:

我在 Maven 中添加了必要的依赖:

    <dependency>
        <groupId>com.google.auto.factory</groupId>
        <artifactId>auto-factory</artifactId>
        <version>1.0-beta2</version>
        <optional>true</optional>
    </dependency>

在运行$ mvn clean compile 时,我看到target/generated-sources/annotions/somepackage/SomeClassFactory 已创建并且模块编译时没有错误。

IntelliJ 配置:

  • Reimport all maven modules
  • Preferences -> Annotation Processors -> Enable annotation processing
  • Rebuild Project

如果我的理解是正确的,这在我的 IDEA (v14.1.4) 版本中应该足够了。

我还执行了以下步骤:

  • 已验证 generated-sources 文件夹已添加为 Project Structure 中的源
  • 已验证 Maven 首选项 Generated sources folders 设置为 Detect automatically
  • 验证源实际上是在 Rebuild 时生成的(首先删除 target 文件夹以确保它是由 IntelliJ 生成的)
  • 按照@tilpner 的建议,尝试在项目结构中禁用Exclude output paths
  • 使缓存失效并重新启动
  • 删除.idea文件夹和.iml文件
  • Preferences -> Maven -> Importing 中尝试不同的设置Phase to be used for folders update

问题:

执行所有这些步骤后,生成的类不会显示在项目资源管理器中。事实上,整个target 目录无处可寻。编译失败,cannot find symbol: SomeClassFactorynew SomeClassFactory().create()在编辑器中被标记为红色,而Maven生成和编译没有任何问题。

我自己没有选择,任何帮助或建议都非常受欢迎!

更新:当我注释导致编译错误的代码时,IntelliJ 在编译消息中打印此警告:Warning:Output path /Users/.../target/generated-sources/annotations intersects with a source root. Only files that were created by build will be cleaned.

【问题讨论】:

标签: java maven intellij-idea autofactory


【解决方案1】:

我从 Jetbrains 支持部门获得了帮助,结果证明问题出在排除文件的偏好上。有两个地方配置了这些:

请检查Preferences &gt; Build, Execution, Deployment &gt; Compiler &gt; Excludes 中未排除文件夹/文件以及Preferences &gt; Editor &gt; File Types -&gt; Ignored files and folders 中未列出的文件/文件夹模式

在我的情况下,target 包含在 Editor > File Types 的忽略文件和文件夹列表中。

然后还有一个编译问题,我把IDEA项目文件扔掉,重新创建项目解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-14
    • 2012-01-04
    • 2018-04-05
    • 2017-09-21
    • 2018-09-18
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    相关资源
    最近更新 更多