Maven を使用する場合、ビルド タスクを管理するための一般的なアプローチは何ですか? 私は現在、依存関係の管理に Maven を使用していますが、Ant や Rake が提供するものと同様に、ライフサイクルとは無関係にいつでも実行できるいくつかの「タスク」を定義する必要があります。名前で呼び出されるたびに一連のステップを実行する単純な「関数」です。
たとえば、1 つの「タスク」はjar
、ユーザー提供のフォルダーからファイルを取得し、コマンドを使用して私の Maven モジュールの 1 つに関連付けられたローカルの Maven リポジトリーにインストールし、mvn install:install-file -DlocalRepositoryPath=repo
そのモジュールの pom.xml を新しいものを指すように変更することです。 jar のバージョン。このタスクはライフサイクルとは関係ありません。特定のことを行う一般的なタスクであるため、手動で実行する必要はありませんmvn task:update-jar
。
もう 1 つの例は、Maven モジュールの 1 つ内のディレクトリの内容を削除し、ユーザー提供のディレクトリから空のディレクトリに内容をコピーする「タスク」です。繰り返しますが、このタスクは Maven や依存関係とは何の関係もありませんが、常に手動で行う必要はありません。
人々はこれらのタスクをどのように記述しますか? これはよくある問題に違いありません。Mavenがプラグインを提供してantrun
いることは知っていますが、私が知る限り、それは私が望むものではないMavenライフサイクルフェーズにしかバインドできません。build.xml ファイルを使用して maven 以外に Ant を使用することもできますが、Maven が自分でやりたいことを実行するように構成できるとしたら、それはばかげています。また、プロジェクトを管理するために Maven と Ant の両方を必要とするのは、最適とは言えません。