web-dev-qa-db-ja.com

Intellij Mavenプロジェクトからモジュールを完全に削除するにはどうすればよいですか?

私は現在、IntelliJIdea 12.1.6Ultimateで大規模なMavenベースのプロジェクトに取り組んでいます。私は約5か月からIntelliJIdeaを使用しています。

含まれているモジュールは、別のモジュールに依存しています。依存モジュールのソースも最近まで私のプロジェクトの一部でした。プロジェクトから依存モジュールを削除したため、Mavenを使用せずにソースをコンパイルしようとすると、コンパイルエラーが発生します。

Intellijで削除されたモジュールのpom.xmlは、[設定]-> [Maven]-> [無視されたファイル]に配置されているようです。そこから削除できないようです。チェックするかチェックを外すだけです。 IntelliJはまだ無視されたファイルの下にあると言うので、モジュールを再び含めることはできません。

2つの方法で再度コンパイルできます。無視されたファイルからpomのチェックを外します。これにより、プロジェクトにモジュールが再び含まれます。または、依存モジュールのソースを削除して、プロジェクトがMavenリポジトリから依存モジュールをロードするようにします。しかし、svnからプロジェクトを更新するたびに、依存モジュールのソースが復元され(プロジェクトの一部ではないため、なぜこれが発生するのかわかりません)、サイクルが新たに始まります。

それは本当に迷惑になるので、私はしばらくこれをググった。いくつかの除外されたモジュールで問題になりました。 intellij-projectを最初から再構築することはできましたが、多くのIntelliJ設定が行われたため(問題とは関係ありません)、むしろこれを解決したいと思います。

どんな助けでもありがたいです、私は何かが欠けているに違いないと思います

14
herpnderpn

Mavenについてより深い知識を持っている同僚が私に答えを教えてくれました:

秘訣は、ソースモジュールをintellijプロジェクトから削除するのではなく、mavenから削除することです(intellijのmavenプロジェクトタブで)。 Intellijは、ソースモジュールもintellijプロジェクトから削除するように要求し、最終的に削除されます。

Mavenプロジェクトを右クリック->プロジェクトを削除

これがそのような違いを生むとは思いませんでした。

33
herpnderpn

これらの2つのポイントのいずれかがあなたのために働きますか?

  • [〜#〜] new [〜#〜]削除されたアーティファクトを指す依存関係がサブモジュールの1つにある可能性があります。それが状況であることを確認するために、$ HOME /.m2の名前を変更してプロジェクトを再構築することをお勧めします。これが実際に当てはまる場合は、pomsで依存関係を検索し、サブモジュールから削除してください。
  • 親を右クリックpom.xml-> Maven-> Reimport
  • プロジェクトを別のディレクトリにコピーします。ファイル->プロジェクトのインポート->新しく作成されたディレクトリを選択-> Mavenを選択しますか?

PS。アイデアは、Mavenプロジェクトに従ってプロジェクト構造を維持するのに優れています。 pomに変更を加えたら、プロジェクトをリロードする必要があります。 Ideaは、pom.xmlに加えられた変更を自動的に検出し、それらをプロジェクトに適用することもできます。これを有効にするには、を押します Ctrl+Shift+A、「maven auto」と入力し、「インポート」を選択し、「Mavenプロジェクトを自動的にインポートする」チェックボックスをオンにします。

2
Andrey Chaschev

これはOPに直接関係しないかもしれませんが、...

IntelliJ 2016.5を使用して、Mavenモジュールandを削除し、その基になるソースコードand親からサブモジュールとして削除し、Project Filesタブに移動し、不要なモジュールを見つけて、三角形の記号を使用して開きますthenディスク上でそれを表すエントリを削除します。

モジュール自体でDeleteを押すと、IDE内で非表示としてマークされるだけです。

1
jmkgreen