2010-12-07 6 views
1

ねえみんな。だから私はHudsonに2つのJava/Maven/SVNプロジェクトを持っています。それらをAとBとしましょう。BはAに依存しています。私は時々それらのコードを同時にコミットします。 Hudsonは、Aのビルドが完了するまでBのビルドをキューに入れるのに十分スマートです。しかし、Bをビルドすると古いビルド(jar)が使用されます。いくつかのビルド/日が古い場合があります。次に、未知のシンボル(Aの新しいクラス/メソッド)のためにBが失敗します。 私はワークスペースを消去し、手動でビルドを注文しようとしました。同じこと。古いビルドが使用されます。ハドソンが最新のジャーを単独で使用するように強制するにはどうすればいいですか?以前のビルドをすべて削除しようとはしませんでしたが、極端な解決策に見えます。うまくいけばそれは要求されないでしょう。ハドソンビルは古い瓶を使用しています

+0

ハドソンをどのようにしてジャーを見つけるように設定しましたか? –

+0

私は特別な構成をしていませんでした。私は依存関係がPOMファイルから引っ張られたと推測しています.AはBの上流プロジェクトとして表示されます。 –

答えて

1

(あなたがする必要があります)スナップショットこれは、すべてのスナップショットを更新するために、Mavenを強制

clean deploy -U 

にMavenの目標を設定することを検討として、あなたの依存アーティファクトを持っている場合。

+0

これはすばらしいです!ありがとう!それについて考えるべきだった。私はそれが実際にMavenのものだったとき、それがハドソンの問題だと思っていました。 –

+0

:)すごくうれしい! –

+0

ちょうどFYI:スナップショット成果物が1日後に失効することがわかりました。 1日2回のコミットがある場合は、上記の解決策を参照してください。オフラインで構築する場合は、スナップショット成果物が1日以上経過していないことを確認してください。あなたはアーティファクトのタイムスタンプを変更することで、Mavenの購入を騙すことができます(これはUnixでは 'touch'コマンドだと思います)。 –

1

ビルドにmavenを使用している場合は、deployターゲットまたはインストールターゲットを使用していますか?もしそうなら、ログを見て、リポジトリのjarファイルが更新されていることを確認する必要があります。最新の場合は、pom.xmlの設定が正しくない可能性があります。

+0

どちらのプロジェクトもビルドに「クリーン展開」を使用していますが、AのJARが正しくアップロードされたことを確認できます。私は1〜2日待ってから再ビルドすると(その間にコミットや変更なしに)正しく構築されるため、Bにpomの問題があることは疑いの余地があります。 –

関連する問題