2

私の経験からすると、Maven は小規模/実験的なアプリケーションではやり過ぎであることがよくあります。しかし、依存関係管理は Maven の非常に便利な機能であり、実際には、前述のタイプのアプリケーションで本当に役立つ唯一の機能です。

Maven の依存関係を Eclipse プロジェクトのクラスパスにできるだけ簡単な方法で追加するだけの、非常に最小限で軽量なEclipse-Maven 統合を実現できるかどうか疑問に思っています。

特に私はしたくない:

  • すべての Maven 規則に適用されます (プロジェクト レイアウト規則を含む)
  • 特定のEclipseプラグインをインストールして使用します(Eclipseはそれが「Mavenプロジェクト」であることをまったく認識せず、特別な方法で処理する必要があります)
  • 軽量のjar /ライブラリダウンローダーとして使用する以外の方法でMavenに依存する/バインドされる

私の最初の (そして唯一の) アイデアは、コマンド ラインからEclipse Maven プラグインを使用してプロジェクトのクラスパスを管理することです。しかし、デフォルトでは、このプラグインはそれ以上のことを行います (デフォルトの Maven プロジェクト レイアウトの設定、ビルダーの管理)。このプラグインを自分のやりたいことだけに制限することはできますか?

または、他の方法で説明した目標を達成できますか?

4

2 に答える 2

2

問題で説明したニーズ/ユースケースに非常によく適合するソリューションを見つけました。

1. Eclipse プロジェクトのルートに最小限の pom ファイルを作成しました。

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.sobczyk.piotr</groupId>
    <artifactId>mvn-eclipse-test</artifactId>
    <version>1.0.0</version>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <outputDirectory>bin</outputDirectory>
    </build>

    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
    </dependencies>
</project>

この .pom ファイルは、次の 3 つの部分で構成されています。

  • 必要なMavenのもの、つまり. モデルバージョンとGAV
  • buildMaven のデフォルトのソースおよび出力ディレクトリがあり、Eclipse 環境を模倣するようにオーバーライドされているセクション (これは、maven-eclipse-plugin の動作の制限に関する質問の一部に対する回答です。他のいくつかの eclipse:eclipse ゴール オプションbuildcommandsは、いくつかのより複雑なケースで役立つ場合があります)
  • dependenciesプロジェクトのクラスパスに必要な依存関係をリストするセクション

2. コマンド ラインから、次のコマンドを呼び出しました。

mvn eclipse:configure-workspace -Declipse.workspace=C:/myworkspace
cd C:/myworkspace/myproject
mvn eclipse:eclipse

3. Maven ファイルから Eclipse プロジェクトのクラスパスを更新するたびに、次の 2 つのいずれかを実行できます。

  • コマンド ラインから最後の 2 行を呼び出す
  • mvn eclipse:eclipse を Eclipse外部ツール構成にバインドし、シングルクリックで起動します
于 2012-04-13T09:39:04.263 に答える
1

申し訳ありませんが、ありません。ここでわかるように:

http://maven.apache.org/plugins/maven-eclipse-plugin/eclipse-mojo.html

プラグインの構成により、いくつかの classppath アイテム、facelets などを追加できますが、デフォルトのものをスキップすることはできません。

于 2012-04-12T11:49:31.483 に答える