2017-05-10 11 views
1

私は次のプロジェクト構造を持って扱われていません。のIntelliJ:ソースルートが正しく

ModuleName (=Content Root) 
    |---src 
    | |---com 
    |   |---company 
    |    |---file1.java 
    |    |---file2.java 
    |---test-src 
    | |---com 
    |   |---company 
    |    |---test.java 
    |--- .classpath 
    |--- .project 

これは、最初のEclipseプロジェクトだった、と私はのIntelliJでそれをインポートする必要があります。

ただし、インポートするたびに、IntelliJはソースルートフォルダと完全に混同されます。

Javaソースファイルを見ると、私はパッケージ宣言に次のエラーを取得:

package com.company; 

Error: Package name 'com.company' does not correspond to the file path 'src/com.company'

Error: Package name 'com.company' does not correspond to the file path 'test-src/com.company'

を私は正しく 'SRC' と「テスト - をマークIntelliJのソースルートとして「src」フォルダを作成します。ただし、これらのフォルダは常にパッケージ階層の一部であると考えられます。

私は約30種類のモジュールのうちの3つでこの問題を抱えています。すべてのモジュールは同じ構造になっていますが、IntelliJがほとんどの理由で動作する理由は実際には分かりませんが、3つのモジュールでは失敗します。

どうすれば解決できますか?

別のモジュール.jarファイルへの依存関係を持っていた(のはBモジュールを呼びましょう)モジュールによって生成された: -

完全期すため
+0

ダブルチェック他のフォルダはソースルートとしてマークされています。「src」のみマークされています。問題が解決しない場合は、[Minimal、Complete、and Verifiable example](http://stackoverflow.com/help/mcve)を共有してください。 – CrazyCoder

+0

上記のソースフォルダはありません。また、検証可能な例を作成することはできません。新しいIntelliJプロジェクトを作成し、モジュールを最初からインポートすると、正しく動作することがよくあります。しかし、しばらくして(時には数分、時には数時間または数日)、突然それが壊れ、問題が再び現れます。私はそれがIntelliJのバグだとはかなり確信していますが、どのようにトリガされているのかわからないので、どうすれば回避できるのか分かりません。 – maja

+0

注:私はすでにこの問題の解決に数日を費やしていました。 IntelliJキャッシュをクリアし、IntelliJを再インストールし、モジュール全体を最初から再作成し、別のPCを使用すると常に同じ問題が発生します。何度も、最初から働いていますが、しばらくしてから再び壊れます。しかし、再び - は特定のモジュールのみです。大部分は大丈夫です。 – maja

答えて

1

は、誰もが同様のセットアップと同じ問題に実行する場合は、ここソリューションです。 A.これは通常正常に動作し、必要な.jarはモジュールBのlibフォルダにあります。それはそう今

<classpathentry kind="lib" path="lib/ModuleA.jar" sourcepath="/ModuleA/" />

:問題は、(IntelliJのにモジュールをインポートするために使用された)そのモジュールBの.classpathファイルには、次のエントリ(私はそれはいくつかの以前の時点で日食によって生成されたと仮定)に含まれていましたIntelliJのようなものは、このソースパスエントリ(これは有効な場所を指していないので)と非常に混同され、何とかモジュールAのパッケージ構造に影響を与えました。 これについて興味深い点は、(実際の問​​題をデバッグして見つけるには非常に苦労しました)というのは、問題のある.classpathファイルが配置されていたモジュールBでエラーが表示されなかったからです(IntelliJは、 .classpathファイルからインポートされたソースは無効です)。

ソースパスエントリを削除するか、有効な場所(lib/ModuleA.jar)を指定して問題を修正しました。

関連する問題