「コンパイルを開始できません:出力パスがモジュールに指定されていません...」


108

私は非常に単純なJava + Gradleプロジェクトを持っています。それはうまく構築します。「gradle run」でシェルからうまく実行されます。ただし、IntelliJ内で実行しようとすると、次のようになります。

Cannot start compilation: the output path is not specified for module "xyz" Specify the output path in Configure Project.

「コンパイラー出力」が「プロジェクトコンパイル出力パスの継承」に設定されています。カスタム出力パスは必要ありません。つまり、通常のGradleビルドを実行します。


1
IntelliJからコードを実行すると、GradleではなくIntelliJによってコードがコンパイルおよび実行され、別のビルド出力ディレクトリが使用されます。(Androidは別の話です。)ただし、Gradleビルドが正しくインポートされている場合、IntelliJ出力ディレクトリはすでに構成されているはずです。
Peter Niederwieser 2014年

回答:


102

あなただけに行きModule settings > Project、「プロジェクトコンパイラ出力」を指定し、モジュールをプロジェクトから継承させる必要があります。(そのために行きModules > Paths > Inherit projectます。

これは私にとってはトリックでした。


20
ええと、Inherit Project私にとってはオプションを選択しなかった
Krish Munot

6
なぜそれを理解できないのか。IntelliJはEclipseよりも優れていると誰もが言いますが、私の経験では、それ自体を考えることはできません。
アンドリューS

ちなみに、IntelliJでは、[ファイル]> [新規]> [モジュール]を実行してJavaモジュールを作成すると、出力パスがデフォルトで設定されるはずです。
J Woodchuck

これが機能しない場合は、IntelliJを再起動することを忘れないでください。私のために修正しました。
コビーフィッシャー

97

の「プロジェクトコンパイラの出力」フィールドに パスを定義する必要があります

File> Project Structure...> Project>Project compiler output

このパスは、すべてのプロジェクトのコンパイル結果を格納するために使用されます


10

Gradleでアイデアプラグインを構成するとき、出力ディレクトリを次のように定義する必要があります。

idea{
    module{
        inheritOutputDirs = false
        outputDir = compileJava.destinationDir
        testOutputDir = compileTestJava.destinationDir
    }
}

素晴らしく見える。この構成はどのファイルに入れますか?
クレイ14

プロジェクトのbuild.gradleファイルに配置する必要があります。
lemiorhan 14

10

私はこれに答えて、もう一度このエラーをググる必要があるときに解決策を見つけることができます。

プロジェクトのコンパイル出力パスをに設定しpath_of_the_project_folder/outます。それが今日機能していることです。intelljのドキュメントでは、任意のフォルダーを選択できるように見えますが、そうではありません。


7

上記の方法のいずれも機能しない場合は、これを試してみてください。

移動し、ファイル>プロジェクト構造>プロジェクト、その後でプロジェクトコンパイラ出力 3個のドットをクリックして、プロジェクト名(ファイル名)のパスを提供し、次にをクリックして適用し、上よりも、[OK]を

写真のように投稿する必要があります。


8
あなたの答えには写真がありません。
James Whiteley

2
@priyanshu:投稿に画像がありません。
Pawan

4

.imlファイルを開きます。キーワード「NewModuleRootManager」を探します。属性 'inherit-compiler-output'がtrueに設定されているかどうかを確認してください。trueに設定されていない場合。

このような :

component name="NewModuleRootManager" inherit-compiler-output="true">
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" />


1

この後

2つのこと:

プロジェクト設定>プロジェクトコンパイラの出力>「プロジェクトパス(実際のプロジェクトのパス)」+「\ out」として設定します。

プロジェクト設定>モジュール>パス>「プロジェクトコンパイルパスを継承」を選択

ボタン実行がアクティブでない場合

IDEAをリロードする必要があります


0

「gradle cleanIdeaModule ideaModule」の情報をここで実行するまで、どの提案も機能しませんでした:https ://docs.gradle.org/current/userguide/idea_plugin.html


0

ドロップダウンを変更してプロジェクトを開始します

ここに画像の説明を入力してください


0

テンプレートを使用せずにIntelliJでプロジェクトを作成すると、このエラーも発生します。

私は2つのSDKをインストールしています。AmazonCorrettoとJavaバージョン11.0.4なので、このエラーが発生したときに「SDKを変更する」というのは、通常Correttoで正常に機能します。

これを行うには、ファイル(IntelliJ)/プロジェクト構造/プロジェクト/プロジェクトSDKをクリックする必要があります。ここに示すように、ドロップダウンリストからcorrettoを選択します(またはコンピュータのオプションを確認します)。

これもあなたのために働くことを願っています

ベスト、コンスタンタン


0

ストアコンパイル済みクラスファイルの定義済みフォルダーが不足しているために発生するバグ。通常、デフォルトでは/ outフォルダーです。Intellij>プロジェクトのインポート>既存のソースからを閉じてみてください。これはこの問題を解決します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.