2

Maven プロジェクトを gradle ビルド プロセスに統合したいと考えています。Maven プロジェクト (war オーバーレイ プロジェクト) を gradle プロジェクトに変換することには成功しましたが、これにはいくつかの欠点があります。まず第一に、maven tomcat プラグインは、Tomcat インスタンスが埋め込まれた実行可能な jar を簡単に作成できます。この仕事をするgradleプラグインが見つかりませんでした。この問題を解決するために、4 つの異なるアプローチが見られます。

  1. Maven プロジェクトを gradle に変換します。前に述べたように、これは機能しますが、このアプローチで tomcat が埋め込まれた jar を作成する方法が見つかりませんでした。
  2. Maven プロジェクトには、maven の目標を実行するためのタスク (ant.exec など) を持つ追加の build.gradle があります。
  3. 私はすべてのプロジェクトでmavenを使用しています(実際にはオプションではありません)
  4. Maven をルート プロジェクトとして使用し、maven から gradle タスクを実行する

他のアイデアや提案はありますか?

4

3 に答える 3

1

しばらく調べた後、自分で質問に答えたいと思います。この特別なケースで maven プロジェクトを gradle プロジェクトに変換することは、最善の方法ではないと思います。私は2番目のアプローチを使用することにしました:

war-overlay プロジェクトはまだ Maven プロジェクトですが、プロジェクトに gradle.build ファイルも追加します。ビルド スクリプトは次のようになります。

task mvnPackage(type:Exec) {
    commandLine "${mavenHome}/mvn", 'package'
}

task mvnClean(type: Exec) {
    commandLine "${mavenHome}/mvn", 'clean'
}

clean.dependsOn mvnClean

assemble.dependsOn mvnPackage

したがって、gradle をビルド ツールとして使用すると、maven のゴールが実行され、完全に機能します。

于 2015-02-10T14:06:11.897 に答える
0

これがどれほど信頼できるかはわかりませんが、maven コンテナー/ハーネスを必要とせずにいくつかの maven mojos をインスタンス化して実行することもできます (詳細はこちら) 。

これがmaven tomcat mojoで可能かどうかはわかりません。

于 2015-02-10T16:46:55.933 に答える