2010-12-08 10 views
2

私はハドソンで多くの仕事をしていますが、そのほとんどは本当に小さく、たった数個のモジュールで構成されています。しかし、1つは大きく、いくつかのモジュールで構成されています。Hudsonにジョブの代わりにモジュールをビルドするように指示するにはどうすればよいですか?

大きなジョブの中のいくつかのモジュールのSubversionリポジトリにコミットするとき、Hudsonは変更されたモジュールだけでなく、ジョブ全体を構築します。

私がscm-pollingかsubversion hookかどうかは関係ありませんが、結果は同じです。

他のジョブの他のモジュールがモジュールに依存していてジョブに依存していないので、ジョブの代わりにビルドされたモジュールがあればいいと思います。

これを設定することはできますか、または大きなものの代わりにいくつかのジョブを作成する必要がありますか?もしそうなら、モジュールが起動されてもビルドしないように設定できますが、自分自身のpom.xmlが変更されたときにビルドされますか?

ありがとうございました。

答えて

0

reactor pluginを使用できます。例:

mvn reactor:make-scm-changes 

これは、SCMで変更されたモジュールのみを構築します。他の例についてはリンクをたどってください。

+0

hudsonを変更する前に、私はこれをローカルで試しました。私はファイルを変更し、 "mvn reactor:make-scm-changes"を実行しました。それはうまくいかなかった。私は を取得しました "ビルドの失敗 " のフォルダと一致するフォルダがありません。 「svn statを使用すると、ファイルが変更されたことがわかります」 これはうまくいきませんでしたか、それともhudson内でしか動作しませんか? –

+0

デバッグを有効にして実行しましたか? 'mvn reactor:make-scm-changes -X'このサイトには多くの文書があります。 –

+0

私はそれが正しく「svn stats」を作成し、変更されたファイルを見つけることがわかりました。しかし、これをもう少し考えてみると、これが答えかもしれないのだろうか。これはローカルの変更のためではありませんか?私が辞める前に私にはいい何か?開発者がすべての変更を行ったときにHudsonはどのような変更を見つけることができますか?Hudsonはsvnを使ってそれらを取得しますか?原子炉は最後に変更されたファイルをscmの変更として識別できますか? –

0

コンパイラはインクリメンタルコンパイルオプションを提供していませんか? Java 1.6コンパイラは、通常、クラスとソースファイルを検索し、タイムスタンプを使用してソースファイルまたはクラスファイルを使用するかどうかを決定します。あなたのコードを構築するときは、きれいな目標を外してください。

バッチ/シェルスクリプトを実行して、変更されたファイルを特定し、対応するクラスファイルを削除し、欠落しているクラスファイルを段階的に作成する方法もあります。

1

Hudsonには、ジョブ構成のMaven領域に「インクリメンタルビルド」オプションがあります。

「高度な」領域には表示されません。

関連する問題