2010-11-22 7 views
0

mvn cleanを実行せずにMavenプロジェクトをビルドすると、NoSuchMethodErrorなどの「ブードーエラー」が発生することがあります。私はこれらがファイルの移動/名前の変更によって引き起こされると信じています。クリーニングなしでMavenにビルド

CIでクリーンオプションを使用したくないのは、ビルド処理に時間がかかるためです。別の選択肢がありますか?

答えて

2

CIビルドでは常にcleanを使用する必要があります。 CIビルドは再現可能でなければならず、最初から開始する必要があります。

そして、プロセスが長くなるにつれて、CI(多くのうちの1つ)を使用することの全ポイントは、実行中に作業を続けることができるということです。問題ではないはずです。

しかし、私がやりたいことは、プロジェクトごとのCIの複数の層を使用している:

  • 最初の仕事は*いくつかの基本的なテストをコンパイルし、実行しているが成功した場合、このビルドは5分未満
  • を取る必要がありますがそれは第三の仕事は、テストサーバー

にビルドを展開し成功した場合、第二ジョブが(それとも、最初のジョブのトリガをさせることができ、すべてのテスト*、コードメトリクス、のjavadocなど

  • を実行し、両方の第二と一度に第三の仕事)

    *あなたは異なったプロファイルごとのmaven確実なプラグインを設定することにより、/すべてのテスト機能をいくつかのテストを実装することができます)

  • +0

    同じトランクに40人の人がいると問題になります。可能な限り最小のデルタで、できるだけ早くCIを破った人のフィードバックを得たいと考えています。今日、私たちのビルドのいくつかは20〜30分かかっていますが、できる限り短くしようとしています。 – ripper234

    +1

    私は40人が1つのコードベースには大きすぎると言います。プロジェクトを別々のモジュールに分割してください(これはおそらく既にあります)、これらのモジュールの1つ以上に対して独立してCIジョブを実行します。しかし、クリーンではないことは決して答えではありません。 –

    0

    我々は3つのビルドターゲットがあります。

    • 継続的インテグレーション:クリーンを実行せずにビルドし、クローバーによって識別されたテストのみを実行します。これは各コミット後に実行されます。成功すると、テストサーバーにデプロイされます。

    • 夜間:きれいにビルドし、すべての単一のテストを実行しますか。これは毎晩実行されます。成功すると、テストサーバーにデプロイされます。

    • リリース:Nightly plusと同じですが、ソースコントロールラベルを作成します。手動で実行します。

    夜間ビルドは、きれいなビルドが行われるという点で、より信頼できるものです。しかし、CIビルドは、それらの機会にフィードバックがより速いことを意味します。

    ビルド時間には根本的な問題がありますが、これに対処するより永続的な方法を見ているうちに、少なくとも回避することはできます。

    関連する問題