私はJavaコードベースをIntelliJで使用しようとしています。コードベースは約20 Java一緒にビルドされたパッケージで構成されています個別のプロジェクトとして(それぞれに.classpath
および.project
ファイルが含まれている約20のディレクトリがあります。)それらは相互に依存関係があります。
IntelliJにこれらをEclipseビルド形式からインポートしてもらいました。 Project Settings -> Modules -> Dependencies
は、多くのプロジェクトがorg.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
への未解決の依存関係を持っていることを示していることを除いて、ほとんど機能しているように見えました。これは、.classpath
ファイルの次のエントリにあるようです。
<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.Eclipse.jst.component.nondependency" value=""/>
</attributes>
</classpathentry>
この依存関係を持つパッケージは、他のパッケージへの依存関係を解決できないため、IntelliJでビルドされません。
org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
は、別のIDEに変換されないEclipse固有のトリックであると思われますが、ここで何が起こっているのか正確に理解できません。
org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
とは何ですか? Eclipseの外部で動作させるためにそれを使用するビルド環境に特別なことをする必要がありますか?
IntelliJ Ultimate 2016.1.2、Java 1.8.0_91、OS X 10.11.5
私はこの問題を回避するために、プロジェクト設定->モジュールに移動し、すべてがビルドされるまで、さまざまなプロジェクト間のモジュール依存関係を手動で追加しました。退屈ですが効果的です。
ただし、org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
の簡単な定義が役に立ったので、この質問はここに残しておきます。
私にとってうまくいく解決策を考え出しましたが、報奨金はまだ開いていて(それを閉じることができないので:P)、より詳細な説明を提供できる人に行きます。
解決策:mvn Eclipse:clean
およびmvn Eclipse:eclipse
を実行します。これにより、mavenは.classpathファイルをクリアし、pom.xmlから再構築します。やや不思議なことに、org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
への恐ろしい参照はもう含まれていません。
おそらく、これはEclipseでは非推奨のタグ/変数です。
IntelliJ IDEA Maven-2プラグインは、Maven-2をIntelliJ IDEAに統合します。
まず、
2番目、
3番目、
Antプラグインと同様に、Maven-2プラグインは、目標(またはフェーズ)の実行を許可し、出力(エラーの強調表示付き)をメッセージウィンドウにリダイレクトします。
IDEA 6.0(バージョン1.1まではIDEA 5.0も)まで)の場合、IDEA組み込みプラグインマネージャを介して、または{{ http:/ /plugins.intellij.net/plugin/?id=1166 }}。
プラグインをダウンロードした場合は、バイナリアーカイブのコンテンツをIDEAプラグインディレクトリに抽出します。抽出されたフォルダ(idea-maven-plugin)には、すべてのJARが存在する別のフォルダlibが含まれています。
環境変数Java_HOMEおよびM2_HOMEを指定したと仮定すると、プラグインはそれ以上の構成なしで実行できる状態になります。 Java_HOMEが定義されていない場合、プラグインは内部のIDEA JDKを使用します。
M2_HOMEが定義されていない場合は、設定ダイアログでMaven-2のホームディレクトリを指定する必要があります。これは、プラグインのバージョン1.1以降の変更点です。
バージョン1.1より前は、Mavenは通常のMavenインストールで提供されている起動スクリプトを介して呼び出されていました。実行中のMavenプロセスへのアクセスを改善するために、MavenはJavaプロセスを開始することによって直接呼び出されます。これにより、たとえば、実行中のMavenプロセスをユーザーが終了できます。
設定は2つの方法で行うことができます:
IDE設定またはプロジェクト設定のいずれかを使用します。プロジェクト設定は常にアプリケーション設定を上書きします!
プラグインは、6.0より前のバージョンのIDEA=では機能しません!プラグインはWindowsおよびLinuxでテストされています。MacOS Xではテストされていません。