2012-05-08 38 views
0

Eclipse用のm2eプラグインを使用して、Mavenを初めて使用しました。私はまだMavenに頭を下げていますが、java.util.Listのような新しいライブラリをインポートする必要があるときはいつでも、手動でjarの正しいリポジトリを見つけてそれを依存関係に追加する手間を省く必要があるようです。 POMこれは大きな混乱のように思えます。特に公共のリポジトリでは見つからない瓶があるので、ローカルのリポジトリにアップロードする必要があります。Mavenには手動での依存関係の更新が必要ですか?

EclipseでMavenについて不明な点がありますか? Eclipseが自動的に新しいライブラリをインポートするときにPOMを自動的に更新する方法はありますか?

私はあなたが悪い例を選んだ

+1

java.util.Listのpom.xmlを変更する必要はありません。 _Eclipseは自動的に新しいライブラリをインポートしますか?すべての外部ライブラリは、pom.xmlの依存関係として宣言する必要があります。 –

+0

ソースコードを次のように入力すると:リスト ... ctrl-spaceで単語 "List"の後にドロップダウンリストの候補が表示されます。 ..コードを入力するだけです。リスト list = new ArrayList ();その後、Ctrl-Shift-Oを使用してjavaファイル内のインポートリストを完成させる必要があります。このリストには、正しい情報が自動的に入力されます。そうしないと、Eclipseの設定が正しくありません。 – khmarbaise

答えて

3

... Mavenを使用すると、時間/労力を節約する方法を理解しようとしています。 Java Standard Runtimeに付属する実際のJavaライブラリの一部は、Mavenの設定に関係なく存在します。

これを念頭に置いて、Log4jなど外部のものを追加する場合は、Log4jにプロジェクト依存関係を追加する必要があります。 Mavenは依存関係の情報を取得し、最初にローカルキャッシュ内で、次に外部リポジトリ内で検索するための "署名"を作成します。

このような署名が

groupId:artifactId:version 

または多分

groupId:artifactId:version:classifier 

のようになります。これは、あなたのシステムにダウンロードして設定されますMavenの「モジュール」を識別します。いったん配置されると、は、モジュール内のすべてのクラスを設定済みのプロジェクトに追加します。

+0

「Log4jにプロジェクト依存関係を追加する」と言ったら、POMを開いたり、依存関係タブをクリックしたり、グループIDやアーティファクトIDなどを使ってLog4jを検索していますか? – matthewb

+0

pomはpom.xmlというファイルです。おそらくツールを使用して、ファイルを自動的に書き込んで書き換えます。ファイルを直接開くと、XMLタグに「依存関係」ブロックが表示されます。少なくとも、学習の最初の段階では、実際にプロジェクトに何が設定されているのかをXMLで調べると便利です。 –

0

Mavenは主に、ビルドにJARファイルをダウンロードして整理する時間を節約します。 "標準的な"プロジェクトレイアウトと "標準の"ビルドオーダーを定義することで、Mavenは "なぜ私のプロジェクトビルではないのですか"という懸賞の推測を排除します。また、 "mvn dependency:tree"のようなきれいなコマンドを使って、プロジェクトが依存するすべてのJARのリストを再帰的に出力することができます。

注意:M2EプラグインとEclipseを使用している場合は、プラグイン自体に問題が発生することもあります。 1.0版(eclipse.orgでホストされていた)は、以前の0.12版(Sonatypeでホストされていた)よりずっと使い勝手が悪かった。これを回避するには、apache(maven.apache.org)からMavenの「スタンドアロン版」をダウンロードしてインストールし、コマンドラインからMavenを実行してください。これは、私の個人的な経験ではEclipseの中でMavenを実行しようとするよりはるかに安定しており、Mavenについて学ぶときに苦労することはありません。

関連する問題