web-dev-qa-db-ja.com

既存のEclipseプロジェクトをMavenプロジェクトに変換する

作業中のプロジェクトでは、ビルドを自動化するためにEclipse用のMavenプラグインを使用することを検討しています。現時点では、手順は本来の手順よりはるかに複雑です。また、Mavenがワンクリックビルドで作業を簡略化することを望んでいます。

私の質問は、Mavenプラグインを使用して、既存のEclipse JavaプロジェクトをMavenプロジェクトに変換するためのウィザードまたは自動インポーターがあるかどうかです。あるいは、新しいMavenプロジェクトを作成して、すべてのソースファイル、libなどを手動でコピーする必要があります。

237
Tom G

デフォルトのPOMを作成してm2Eclipse機能を有効にしたいのであれば、インポートしようとしている代替の自動ビルド設定は現在ないと想定しています。また、m2Eclipseプラグインについて話していると想定しています。

M2Eclipseプラグインは、このデフォルトpom.xmlを追加するためのプロジェクトの右クリックオプションを提供します。

新しいM2Eバージョン

プロジェクトを右クリック - >サブメニュー設定 - > Mavenプロジェクトに変換

旧M2Eバージョン

「プロジェクト」 - >「サブメニューMaven」 - >「依存関係管理を有効にする」を右クリックします。

それはそのプロジェクトのプラグインを有効にするために必要なことをします。


'自動インポーターまたはウィザードはありますか?'と答えるには、知っていることではありません。上記のオプションを使用すると、手動コピーを回避して既存のプロジェクトに対してm2Eclipseプラグインを有効にすることができます。それでも、依存関係や他のものを自分で構築するために実際にセットアップする必要があります。

137
brabster

M2e 0.13.0から(それより前でなければ)、コンテキストメニューからJavaプロジェクトをMavenプロジェクトに変換できます。方法は次のとおりです。

  • Javaプロジェクトを右クリックしてコンテキストメニューを表示します。
  • 選択設定> Mavenプロジェクトに変換

これが 詳細な手順 スクリーンショット付きです。

291
chengdong

私は同じ問題を抱えていて、60のEclipseプロジェクトを含むEclipseワークスペース全体をMaveniseにしたかったのです。手作業でそれを行うことは多くの時間を必要とし、そして代替の選択肢はそれほど実行可能ではなかった。この問題を解決するために、私はやっとgithub上で Eclipse-to-maven というプロジェクトを作成しました。 Eclipseは依存関係について必要な情報をすべて持っているわけではないので、次のことを行います。

  • .classpathファイルの<classpathentry/> XML要素に基づいて、他のプロジェクトへの依存関係を作成し、ライブラリのjarファイルを識別し、その名前(たとえばjakarta-oro-2.0.8.jar)に基づいてそのバージョンを識別します。現在artifactIdgroupIdは、artifactIdに基づく依存関係のMavenグループIDを返すことができるものが見つからなかったのと同じです。これは完璧な解決策ではありませんが、それはMavenisationをスピードアップするための良い基盤を提供します。

  • Mavenの規約に従って(src/main/Javaのように)すべてのソースフォルダを移動します。

  • スペースを含む名前を持つEclipseプロジェクトはLinux/Unix環境では扱いにくいため、名前をスペースを含まない名前でも変更します。

  • 結果のpom.xmlファイルには、依存関係と基本的なpom構造が含まれています。必要なMavenプラグインを手動で追加する必要があります。

12

「プロジェクト名」を右クリックし、「構成」>「Mavenプロジェクトに変換」>「完了」をクリックします。ここで、ダウンロードするための依存関係を追加し、予想されるjarファイルを追加します。

これにより、自動生成されたpom.xmlファイルが作成されます。 Eclipseエディタでそのファイルをxml形式で開きます。ビルドタグ(</build>)の後に、あなたがMavenのWebサイトからコピーしてそこにそれらを追加できるあなたの依存関係を加えてください。今、あなたは行ってもいいです。これらの依存関係は自動的にあなたの必要なjarファイルを追加します。

7

Chengdongの答えは正しいです、あなたはConfigure>Convert to Maven Projectを使うべきです。しかし、m2e 0.13.0:m2e 1.1以降およびm2e-wtp 0.16.0以降が可能になったため、変換プロセスを大幅に改善しました。 既存のEclipse設定をMavenプラグイン構成に変換する

依存関係の変換に関しては、m2eの変換プロセスに組み込まれた実験的な変換ウィザードを含むJBoss Tools(JBT)4.0 Maven統合機能を試すことができます。 http://docs.jboss.org/tools/ whatsnew/maven/maven-news-4.0.0.Beta1.html

それはあなたのMaven変換プロセスをブートストラップするのに大いに役立つはずなので、究極の解決策であることはできません(できることは何もありません)。

また、FYI、これは m2eの変換プロセスを強化するためのいくつかのアイデア 、Mavenレイアウトを使用するようにリファクタリングすることは、おそらく将来的に実装されるでしょう。

JBT 4.0(Eclipse JavaEE Junoが必要です)は http://download.jboss.org/jbosstools/updates/stable/juno/ から、あるいはEclipse Marketplaceからインストールすることができます。

5
Fred Bricon

多かれ少なかれ、gitからプロジェクトをインポートするとき、それはmavenプロジェクトではないので、maven依存関係はビルドパスにはないので、それは必要です。

これが、一般的なプロジェクトをMavenプロジェクトに変えるために行ったことです。

一般プロジェクト - > Javaプロジェクトでプロジェクトを右クリックし、プロパティ - >プロジェクトファセット、 "Java"の順にクリックします。このステップは一般的なプロジェクトをJavaプロジェクトに変えるでしょう。

Javaプロジェクト - > mavenプロジェクト右クリックプロジェクト、構成 - > mavenプロジェクトへの変換現時点では、maven依存関係libはまだビルドパスにはありません。プロジェクトプロパティ、ビルドパス、ライブラリの追加、Maven依存関係の追加

そして数秒待って、依存関係がロードされたら、プロジェクトの準備は完了です。

4
moonshang

任意のJavaプロジェクトをSBT/Mavenプロジェクトに変換するためのコマンドラインプログラムがあります。

すべてのjarを解決し、SHAチェックサム、クラスパス、またはファイル名に基づいて正しいバージョンを見つけようとします。それからそれは働く設定が見つかるまでソースをコンパイルしようとします。依存関係設定ごとに実行するカスタムタスクも指定できます。

UniversalResolver 1.0
Usage: UniversalResolver [options]

  -s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
        required src paths to include
  -j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
        required jars/jar paths to include
  -t /path/To/Dir | --testDirectory /path/To/Dir
        required directory where test configurations will be stored
  -a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
        SBT Tasks to be executed. i.e. compile
  -d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json
        optional file where the dependency buffer will be stored
  -l | --search
        load and search dependencies from remote repositories
  -g | --generateConfigurations
        generate dependency configurations
  -c <value> | --findByNameCount <value>
        number of dependencies to resolve by class name per jar

https://bitbucket.org/mnyx/universalresolver

2
Alex

Gradleへの変換はMavenと同じです。

「プロジェクト」 - >「サブメニュー構成」 - >「Gradle(STS)プロジェクトに変換」を右クリックします。

1
another

私の質問は、Mavenプラグインを使用して、既存のEclipse JavaプロジェクトをMavenプロジェクトに変換するためのウィザードまたは自動インポーターがあるかどうかです。

私の知る限りでは、EclipseプロジェクトをMavenプロジェクトに自動的に変換するものは何もありません(すなわち、レイアウトの変更、POMの作成、メタデータの生成とフィード、ライブラリとそのバージョンの検出によるPOMへの追加)。など)。 Eclipseはこれを可能にするのに十分なメタデータ(これはまさにPOMの要点です)や適切な結果を生み出すのに十分なメタデータを持っていません。

あるいは、私は新しいMavenプロジェクトを作成して、手動ですべてのソースファイル、libなどをコピーするべきです。

それが私の考えでは最良の選択肢だろう。 Mavenプロジェクトを作成し、ソース、リソース、テスト、テストリソースをそれぞれのディレクトリにコピー/移動します。declare依存関係など。

1
Pascal Thivent