2011-10-31 16 views
3

私はJenkinsを初めて使用しており、設定を開始しました。Hudson/Jenkins PMD Configuration

  1. がインストールされ、ホーム・ページを表示するように構成されたジェンキンスを:これは私が今までやっていることです。 PMDプラグインを追加しました。
  2. HUDSON_HOMEを特定のディレクトリに設定します。> C:¥Work¥Jenkins
  3. 単純なdo-nothing antスクリプトを実行するようにテストビルドを設定しました。それは正常に実行されます。

  4. C:\ myview(私はクリアケースを使用しています)のファイルセットのチェックを実行するために、独立したpmdbuild.xmlが書かれています。このxmlは、出力pmd_results.xmlをワークスペースディレクトリにコピーします。$HUDSON_HOME/[job-name]/workspace

  5. ここでは、プライマリビルドのステップとしてpmdbuild.xmlを追加しました。だから私のビルドは2つのステップを持っています: a。単純なスクリプトを実行します。何もしません。 b。 pmd_results.xmlを生成し、$HUDSON_HOME/[job-name]/workspaceに入れたp mdbuild.xml(ジェンキンスPMDプラグインが存在し、ファイルを期待してハードコードされた)

  6. 実行ジェンキンスは、プラグインで自動的にpmd_results.xmlをピックアップし、警告、すべてを表示します。

今問題:私はPMDの結果でファイル名をクリックすると、それは$HUDSON_HOME/[job-name]/workspaceでソースファイルを探しているよう

  • が、それはfilenotfound例外を提供します。

  • 私のJavaコードのファイルはCに配置されています:\のMYVIEW(ClearCaseのスナップショットビュー)

私の質問は、私は$HUDSON_HOME/[job-name]/workspaceの内側に存在するすべての私のコードファイルが必要ですされて?意味は私がC:\ myviewまたは$HUDSON_HOME/[job-name]/workspaceではなく他のディレクトリでPMD入力ファイルを探すようにJenkinsに伝えることはできませんか?

非常に長い説明を申し訳ありません。

答えて

3

Jenkinsは、すべてのコードが作業領域内にあることを想定しています。通常、Jenkinsはコードのコピーをワークスペースにチェックアウトしてから、すべてのビルドステップをワークスペースのソースで実行します。

Jenkinsを別のサーバーに移動する必要がある場合、またはスレーブインスタンスを作成する必要がある場合は、最初は拘束されているように見えるかもしれません。

私はJenkinsにコードをチェックアウトさせて(クリアケースのプラグインが必要です)、ワークスペースにチェックアウトし、チェックアウトされたコードで分析を実行することをお勧めします。

あなたのコードがどこにあるか(あなたの場合はC:\ myview)、あなたのビルドの作業領域をそのディレクトリに設定することができる魅力的な理由がある場合(ジョブ設定ページでこれを見つける必要があります。 「拡張」ボタンをクリックするとオプションが表示されます)。

+0

ありがとう..私はマスターJenkinsの設定でオプションを見つけて問題を解決しました。私のコードを完全にチェックアウトしているJenkinsと同意しないでください。それは何よりも根拠の根拠に過ぎず、強要ではありません。 –

+1

もちろん、すべてのジョブがソースをチェックアウトする必要はありません。ソースをチェックアウトしてビルドするジョブと、ビルドソースでテストを実行するジョブと、コード分析を実行するジョブを持つことは、大変意味があります。しかし、それでもJenkinsにソースをチェックさせ、Jenkinsの外部では実行しないことがベストプラクティスです。 Jenkinsでソースをチェックアウトすると、多くのメリットが得られます。 – pushy

+0

私のソースコードには40K +のファイルが含まれているので、チェックアウトしない理由がありました。クリアケースはgitではありません:) –