当我尝试编译项目中的任何类时,我得到以下错误:
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。
拜托,有人可以帮忙吗?
答案 0 :(得分:34)
您需要做的就是:
享受
答案 1 :(得分:14)
将模块的输出路径设置为不同的目录,如下所述:https://www.jetbrains.com/idea/help/configuring-module-compiler-output.html
On Project "Open Module Settings" -> Modules -> Paths -> Output/Test path
答案 2 :(得分:7)
答案 3 :(得分:4)
Files --> Invalidate caches and restart
.idea
文件夹(备份runConfigurations
文件夹,如果有的话)。project.iml
文件pom
或sbt
(或您拥有的任何源构建工具)打开项目。答案 4 :(得分:4)
我在多模块项目中使用根模块实现了这一点。由于根模块只是一个占位符,它实际上并不包含任何代码,但IDEA仍然抱怨它在测试和生产之间共享输出路径(IF rx_records.COUNT > 1 THEN
FOR i IN rx_records.FIRST .. rx_records.LAST
LOOP
FOR j IN rx_records.FIRST + 1 .. rx_records.LAST
LOOP
IF rx_records(i).eff_startdate <= rx_records(j).eff_enddate AND rx_records(i).eff_enddate >= rx_records(j).eff_startdate THEN
DBMS_OUTPUT.PUT_LINE('00');
ELSE
DBMS_OUTPUT.PUT_LINE('11');
END IF;
END LOOP;
END LOOP;
ELSIF rx_records.COUNT = 1 THEN
DBMS_OUTPUT.PUT_LINE('There''s only 1 row in the table. - nothing to compare it to');
ELSE
DBMS_OUTPUT.PUT_LINE('There are no rows in the table.');
END IF;
)。
修复是添加
[project]/build
位于根plugins {
id "java"
}
文件的顶部(应用其他不必要的Java插件)并重新导入项目。这允许IDEA获取Java默认的build.gradle
和[project]/build/classes/main
输出目录。
答案 5 :(得分:3)
打开模块设置并查找错误。修复错误,一切都应该有效。
答案 6 :(得分:1)
问题解决了!
我已经多次向后和向前重置我的git存储库并在其中一些之后关闭 - 重新打开它的想法。当最终IDEA在启动时在右上方显示红色消息时。它说的是:项目已经有一个eval模块,如果我想删除eval模块。是的,这很令人困惑,但我点击删除,我的问题消失了。我想由于某种原因,我成了2个eval模块并删除其中一个解决输出路径错误。
答案 7 :(得分:1)
对于Spark项目,IDE创建了_2.11
个版本的SBT模块。我不得不手工删除它们。
答案 8 :(得分:1)
想法本身报告错误,提示已经非常明显,冷静分析就可以解决; 打开项目结构->模块。删除或重新配置outputPath,计算机是最诚实的
答案 9 :(得分:0)
这实际上是对@habitat对@Corey Klein答案的评论的回应。如果有足够声誉的人想要编辑,请继续...
每次刷新项目时,重置设置都会遇到相同的问题。我的解决方案(使用Gradle,尽管我猜有一个等效的Maven插件)是添加
apply plugin: 'idea'
idea {
module {
inheritOutputDirs = true
}
}
答案 10 :(得分:0)
对于gradle,我删除.idea文件夹并重新打开项目。一切都在恢复。
答案 11 :(得分:0)
我对同一模块有2个不同名称的版本,需要删除一个以避免这种冲突。这对我有用:
在IntelliJ IDEA中,转到File -> Project Structure -> Modules -> Your Project -> Paths
确保每个模块的“输出路径”和“测试输出路径”位置在所有模块中都是唯一的。 如果您有多个具有相同路径的模块,则可以为每个模块指定唯一的路径,或者像我这样,删除不需要的模块,因为它是现有模块的副本
答案 12 :(得分:-1)
我面临同样的问题,我通过从intellij创建的模块中删除.iml2来解决这个问题。