36

Eclipseには、2つのMavenプロジェクトAとBがあります。ここで、AはBの親です。ディレクトリ構造は次のとおりです。

A/pom.xml
A/B/pom.xml
A/B/...

次に、ファイル検索(Ctrl + H)を使用して、プロジェクトB内のファイルを検索します。検索結果ウィンドウには、相対パスが異なるファイルが2回表示されます。

A/B/<my_file>
B/<my_file>

したがって、同じファイルが2回表示されます。明らかに、最初の検索結果は冗長です。これらの重複する検索結果を除外する方法はありますか?

4

11 に答える 11

44

これを回避するために私が個人的に行うことは、親プロジェクトの各モジュールを派生としてマークすることです(フォルダーを右クリック>プロパティ>属性:派生)。

次に、ファイル検索を実行するときに、[派生リソースを検討する]のチェックを外します(デフォルトではチェックされていないと思います)。そうすると、は取得されませんA/B/<my_file>

唯一の不便な点は、モジュールごとに、そして新しいモジュールが追加されるたびにこれを行う必要があることです。

于 2013-02-25T13:13:03.867 に答える
20

開いているリソースウィンドウ(cntrl + shift + R)で、右上の矢印をクリックし、[重複するリソースのフィルター]をオンにします。これは私のために働いた。

于 2017-05-03T04:49:08.447 に答える
18

[ウィンドウの確認]->[設定]->[Maven]->[物理的にネストされたモジュールのフォルダーを非表示にする(実験的)]は、Mars.1リリース(4.5.1)で機能しました。

それを確認した後、Eclipse内のすべてのプロジェクトを閉じ、Eclipseプロジェクトファイル(.project、.classpath、および.settings)を削除し、Mavenプロジェクトを再インポートしました。

于 2016-01-03T03:24:23.213 に答える
4

Windows-設定-Maven-物理的にネストされたモジュールのフォルダーを非表示にする

于 2014-09-09T02:55:59.983 に答える
4

私も同様の問題を抱えていました。

この問題に対する私の解決策は

  1. 検索するプロジェクトのEclipse「ワーキングセット」を作成します
  2. このワーキングセットをオプションとして検索ダイアログに設定します
  3. その中で検索

    検索ダイアログの例

于 2017-01-05T15:04:24.767 に答える
2

DamonHorrellに同意します。[Windows]-[設定]-[Maven]-[物理的にネストされたモジュールのフォルダーを非表示にする]に移動します(チェックボックスがオンになっていることを確認してください)。

注:変更を確認するには、MavenプロジェクトをEclipseに再インポートしてください。

于 2015-03-11T18:50:28.610 に答える
2

親プロジェクト内では、私の場合、子プロジェクトはすでに視覚的に非表示になっていますが、検索リンクとCtrlクリックリンクで見つかりました。

リソースフィルターを使用してこれを解決しました:

  1. (親)プロジェクトを右クリック>[プロパティ] >[リソース] >[リソースフィルター]
  2. [フィルターの追加... ]をクリックし、[適用先] -> [フォルダー]を選択して、1つの子プロジェクトのフォルダー名を入力し、[ OK ]をクリックします。
  3. すべての子プロジェクトフォルダーに対して2を繰り返します。

最後に、次のようなものが必要になります。ここに画像の説明を入力してください

于 2017-08-31T06:56:53.410 に答える
1

ネストされたプロジェクトをサポートするようにEclipseに要求する古代のバグがあります。2008年にオープンしましたが、すぐには起こらないと思います。

EclipseはMavenのデフォルトのネストされたモジュールレイアウトをサポートしていないため、各モジュールを個別にインポートする必要があります。これにより、Eclipseは混乱しませんが、検索結果に表示されるように混乱する可能性があります。モジュールに起動構成を保存し始めると、同様のことが起こります。

いくつかの可能な解決策があります:

  1. 検索結果の半分を無視することに慣れてください。ある程度の規律はありますが、魔法はありません。

  2. ルートプロジェクトに、Eclipseから開く可能性のある重要なものが含まれていないことを確認します(つまり、親POMをルートプロジェクトの子である必要がある新しいモジュールに移動します)。これで、ルートプロジェクトを閉じることができます。

    プロジェクトのどこに物を置くかについてはある程度の規律があり、新しいモジュールを追加する必要がある場合は不器用です。

  3. フラットマルチモジュールアプローチを使用します。これは#2の拡張機能であり、奇妙に見え、それに不快感を与えるプラグインが存在する可能性があります。したがって、多くの非標準プラグインを使用する場合は、それらが新しいレイアウトを気に入っているかどうかを確認する必要があります。

于 2013-02-25T13:04:53.337 に答える
0

この問題は、フラットマルチモジュールアプローチを使用して解決できます。

Subversion以外のバージョン管理システムでmaven-release-pluginを使用している場合は、警告が適用される場合があります。

于 2013-02-25T11:36:59.917 に答える
0

新しい参加者として、まだコメントできませんでしたが、私は本当にベストアンサーに何かを追加したいと思います。できます!重複ファイル(子モジュールから1つ、親モジュールから1つ)を削除しただけでなく、親モジュールからクラスファイルも削除しました。

しかし、フォルダが.gitignoreに追加されたため、後で追加された新しいファイル/ディレクトリで問題が発生します。変更を.gitignoreに戻したところ、Eclipseでも機能します。

.gitignore EGitの自動変更を無効にするには、この回答を見つけ てください。Eclipseは.gitignoreファイルを変更しますが、変更しないでください。

于 2014-03-28T09:40:58.570 に答える
0

上記の「物理的にネストされたモジュールのフォルダーを非表示にする」に加えて、 Mavenプロジェクト をインポートするときに親モジュールのチェックを外すことができます。ここに画像の説明を入力してください

于 2020-08-29T06:43:08.860 に答える