web-dev-qa-db-ja.com

出力パスは同じモジュールエラー間で共有されています

プロジェクトのクラスをコンパイルしようとすると、次のエラーが表示されます。

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リポジトリを何度も前後にリセットし、その一部を閉じてから再オープンしました。 finaly IDEAは、起動中に右上に赤いメッセージを表示します。プロジェクトにはすでにevalモジュールがあり、evalモジュールを削除したい場合。はい、それはかなり混乱していましたが、「削除」をクリックすると問題が消えます何らかの理由で2つのevalモジュールになり、そのうちの1つが削除されて出力パスエラーが解決されると思います。

あなたがする必要があるのは:

  • 両方のモジュールを同期(右クリック>同期)
  • 両方のモジュールのpom.xmlを再インポートします(右クリック> Maven>再インポート)

楽しい

35
Yonatan Maman

ここで説明するように、モジュールの出力パスを異なるディレクトリに設定します。 https://www.jetbrains.com/idea/help/configuring-module-compiler-output.html

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

14
DreamFlasher

これを解決するには、プロジェクト構造設定ウィンドウで「プロジェクトのコンパイル出力パスを継承」を選択しました。

enter image description here

8
Cory Klein

これは、マルチモジュールプロジェクトのルートモジュールで発生しました。ルートモジュールは単なるプレースホルダーであるため、実際にはコードが含まれていませんでしたが、IDEAは、テストと本番環境の間で出力パス([project]/build)を共有していると依然として不平を言いました。

修正は追加することでした

plugins {
  id "Java"
}

ルートbuild.gradleファイルの最上部(それ以外の場合は不要なJavaプラグイン)を適用し、プロジェクトを再インポートします。これにより、IDEA Javaのデフォルトの[project]/build/classes/mainおよび[project]/build/classes/test出力ディレクトリ。

4
David Moles
  1. Files --> Invalidate caches and restart
  2. インテリジを閉じる
  3. 削除(intellijから外部).ideaフォルダー(runConfigurationsフォルダーがある場合はバックアップします)。
  4. project.imlファイルを削除します
  5. Intellijを開く
  6. pomまたはsbt(または任意のソースビルドツール)からプロジェクトを再度開きます。
4
Tomer Ben David

モジュール設定を開き、エラーを探します。上記のエラーを修正すると、すべてが機能するはずです。

3
bradley.ayers

Sparkプロジェクトの場合、IDE created _2.11 SBTモジュールのバージョン。手動で削除する必要がありました。

1
Dyin

ここに画像の説明を入力

アイデア自体がエラーを報告し、プロンプトはすでに非常に明白であり、落ち着いた分析で解決できます。 [プロジェクト構造]-> [モジュール]を開きます。 outputPathを削除または再構成します。コンピューターは最も正直です。

1
Pookly

Gradleの場合、.ideaフォルダーを削除して、プロジェクトを再度開きます。すべてが回復です。

0
salexinx

同じモジュールの2つの異なる名前のバージョンがあり、この衝突を避けるために1つを削除する必要がありました。これは私のために働いたものです:

IntelliJではIDEA go to File -> Project Structure -> Modules -> Your Project -> Paths

各モジュールの「出力パス」と「テスト出力パス」の場所がすべてのモジュールで一意であることを確認してください。同じパスを持つモジュールが複数ある場合は、すべてのモジュールに一意のパスを指定するか、私の場合のように、既存のモジュールの複製であるため不要なモジュールを削除します

0
Mike

これは、@ Corey Kleinの回答に対する@habitatのコメントへの応答です。十分な評判のある人が編集したい場合は、先に進んでください...

プロジェクトを更新するたびに設定がリセットされるという同じ問題がありました。私の解決策(Gradleで、同等のMavenプラグインがあると推測していますが)を追加することでした

apply plugin: 'idea'
idea {
    module {
        inheritOutputDirs = true
    }
}
0
Benjamin Berman