【问题标题】:Output path is shared between the same module error输出路径在同一个模块之间共享错误
【发布时间】:2013-09-26 01:15:11
【问题描述】:

当我尝试编译项目中的任何类时,我收到以下错误:

Error scala: Output path .../eval/target/test-classes is shared between: Module 'eval' tests, Module 'eval' tests
      Output path .../eval/target/classes is shared between: Module 'eval' production, Module 'eval' production
      Please configure separate output paths to proceed with the compilation.

我已经看到了如何在 IDEA 中设置输出路径,并且我已经做到了。但由于错误声称它在同一个模块之间共享,我无法解决它。

Obs.:使用 Maven 和 IntelliJ IDEA。

请问,有人可以帮忙吗?

【问题讨论】:

  • 问题解决了!我已经多次向后和向前重置我的 git 存储库,并在其中一些之后关闭重新打开的想法。最后,IDEA 在启动时在右上方显示一条红色消息。它说的是:该项目已经有一个 eval 模块,如果我想删除 eval 模块。是的,这很令人困惑,但我点击删除,我的问题就消失了。我猜出于某种原因,我使用了 2 个 eval 模块,它删除了其中一个,解决了输出路径错误。
  • 我使用的是SVN,但也通过调用“Cleanup”并将我的maven项目重新导入Idea解决了这个问题。
  • 我只是与这个问题斗争了几个小时,直到我意识到我的子模块引用的父版本不一致。修复它们为我解决了这个问题!

标签: scala maven intellij-idea


【解决方案1】:

您需要做的就是:

  • 同步两个模块(右键单击>同步)
  • 为两个模块重新导入 pom.xml(右键单击 > Maven > 重新导入)

享受

【讨论】:

  • 也为我工作。谢谢!
【解决方案2】:

将模块的输出路径设置到不同的目录,如下所述:https://www.jetbrains.com/idea/help/configuring-module-compiler-output.html

On Project "Open Module Settings" -> Modules -> Paths -> Output/Test path

【讨论】:

  • 优秀。我必须单击我的项目,然后执行此操作。
  • 我发现这是一个 Gradle 插件问题。每当您重新导入 Gradle 项目时,它都会覆盖您的选择并将它们设置回原样。
  • 如果您应用idea 插件,您可以配置模块的输出目录,或设置inheritOutputDirs = true,如here 所述。下次重新导入项目时,您的设置不会丢失。
【解决方案3】:

我通过在项目结构设置窗口中选择“继承项目编译输出路径”解决了这个问题。

【讨论】:

  • 每次刷新项目时都会重置
  • @habitats 我也看到过同样的事情。 ://
【解决方案4】:
  1. Files --> Invalidate caches and restart
  2. 关闭智能
  3. 删除(从 intellij 外部).idea 文件夹(备份 runConfigurations 文件夹,如果有的话)。
  4. 删除project.iml文件
  5. 打开智能
  6. pomsbt(或您拥有的任何源构建工具)再次打开项目。

【讨论】:

  • 无效缓存是为我修复它的一个。需要很长时间..但结果是值得的。
【解决方案5】:

我在一个多模块项目中的根模块中发生了这种情况。由于根模块只是一个占位符,它实际上不包含任何代码,但 IDEA 仍然抱怨它在测试和生产之间共享输出路径 ([project]/build)。

解决方法是添加

plugins {
  id "java"
}

在根 build.gradle 文件的顶部(应用其他不必要的 Java 插件)并重新导入项目。这允许 IDEA 选择 Java 默认的 [project]/build/classes/main[project]/build/classes/test 输出目录。

【讨论】:

  • 这应该是公认的答案,因为它是唯一让您不必在依赖项发生变化时手动解决问题的答案。
  • 我的感觉是,这基本上是一个IDEA的bug,但我一直懒得归档。
  • 或者您可以应用idea 插件并配置您的根模块,以便inheritOutputDirs = true。这需要更多的配置,但感觉更直观。
【解决方案6】:

打开模块设置并查找错误。修复上述错误,一切正常。

【讨论】:

    【解决方案7】:

    问题解决了!

    我已经多次向后和向前重置我的 git 存储库,并在其中一些之后关闭重新打开想法。最后,IDEA 在启动时在右上方显示一条红色消息。它说的是:该项目已经有一个 eval 模块,如果我想删除 eval 模块。是的,这很令人困惑,但我点击删除,我的问题就消失了。我猜出于某种原因,我使用了 2 个 eval 模块,它删除了其中一个,解决了输出路径错误。

    【讨论】:

    • 同样的问题,但是当它显示为一个模块时,它要求您删除一个模块。
    • 在我的情况下不是答案,但足够接近。由于项目文件签入到版本控制中,我不得不禁用一些 IDEA 要求的插件。相同的弹出式通知出现并询问我是否要禁用插件。感谢您为我指明正确的方向。
    • 我猜你的修复相当于打开 .idea/modules.xml 并删除重复的模块。
    • 我对您的答案投了反对票,因为它不是问题的答案。看看 yonatan maman 写了什么。
    • 是的,重新启动直到它得到修复不应该是答案。
    【解决方案8】:

    对于 Spark 项目,IDE 创建了 _2.11 版本的 SBT 模块。我不得不手动删除它们。

    【讨论】:

      【解决方案9】:

      enter image description here

      idea本身报错,提示已经很明显了,冷静分析即可解决; 打开项目结构 --> 模块。删除或重新配置输出路径,电脑最老实

      【讨论】:

        【解决方案10】:

        这确实是对@habitat 对@Corey Klein 回答的评论的回应。如果有足够声誉的人想要编辑,请继续...

        每次刷新项目时都会重置设置,我遇到了同样的问题。我的解决方案(使用 Gradle,虽然我猜有一个等效的 Maven 插件)是添加

        apply plugin: 'idea'
        idea {
            module {
                inheritOutputDirs = true
            }
        }
        

        【讨论】:

          【解决方案11】:

          对于 gradle,我删除 .idea 文件夹并重新打开项目。一切都恢复了。

          【讨论】:

            【解决方案12】:

            我有同一个模块的 2 个不同名称的版本,需要删除一个以避免这种冲突。这对我有用:

            在 IntelliJ IDEA 中转到 File -> Project Structure -> Modules -> Your Project -> Paths

            确保每个模块的“输出路径”和“测试输出路径”位置在所有模块中都是唯一的。 如果您有多个具有相同路径的模块,您可以为每个模块指定唯一的路径,或者像我一样,删除您不需要的模块,因为它是现有模块的副本

            【讨论】:

              【解决方案13】:

              我遇到了同样的问题,我通过从 intellij 创建的模块中删除 .iml2 来解决这个问题。

              【讨论】:

                猜你喜欢
                • 2022-09-29
                • 1970-01-01
                • 2017-01-21
                • 1970-01-01
                • 1970-01-01
                • 2016-04-20
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多