2011-10-18 7 views
7

私はJenkinsのマスター(小さなLinuxボックスで動作しています)とJenkinsのスレーブ(「正しい」XPマシンで動作しています)を持っています。jenkinsのスレーブはどのsettings.xmlを使用していますか?

Windows XPのすべてのスレーブですべてのjibを実行するように設定しました。

残念ながら、ビルドはそのスレーブ上で実行されるたびに、ビルドは次のエラーにより失敗します。

ERROR: Ignore Problem expanding maven opts macros org.jenkinsci.plugins.tokenmacro.TokenMacro 
Found mavenVersion 3.0.3 from file jar:file:/E:/java-ext/apache-maven-3.0.3/lib/maven-core-3.0.3.jar!/META-INF/maven/org.apache.maven/maven-core/pom.properties 
Parsing POMs 
ERROR: Echec à la lecture des POMs 
hudson.util.IOException2: remote file operation failed: C:\hudson\workspace\Autocat at [email protected]:ndx-PC-winXP 
    at hudson.FilePath.act(FilePath.java:752) 
    at hudson.FilePath.act(FilePath.java:738) 
    at hudson.maven.MavenModuleSetBuild$RunnerImpl.parsePoms(MavenModuleSetBuild.java:817) 
    at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:617) 
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:429) 
    at hudson.model.Run.run(Run.java:1374) 
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:467) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:145) 
Caused by: hudson.remoting.ProxyException: hudson.maven.MavenModuleSetBuild$MavenExecutionException: org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs: 
[FATAL] Non-resolvable parent POM: Failure to find fr.perigee.java:java-parent:pom:0.0.6 in http://tinkerpop.com/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of tinkerpop has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 3, column 10 

私が使用しているため、このエラーは、これらの成果物を含むリポジトリの悪い定義によるものである知っていますリポジトリはsettings.xmlで定義されています。だから、私の質問は非常に簡単です:どのようにsettings.xmlファイルがJenkinsのスレーブによって使用されるのか定義できますか?

答えて

6

いつものように、解決策は私ができると思っていたよりも簡単でした。

Jenkinsスレーブは、システムユーザによって実行されるように設定されています。 結果として、settings.xmlを使用するためには、関連付けられたユーザーを変更するだけで済み、問題は消えました。

20

Mavenはグローバル設定とユーザー設定ファイルを使用します。ユーザー設定ファイルが存在する場合は、グローバル設定ファイルを上書きします。

グローバルなものは%M2_HOME%\conf\にあり、ユーザーのものは%HOME%\.m2\です。ここで%HOME%は、Jenkinsスレーブを実行しているユーザーのホームディレクトリを意味します。

最も簡単な解決策は、状況に応じて正しいsettings.xmlファイルをJenkinsスレーブマシンの%HOME%\.m2\ディレクトリにコピーすることです。

また、あなたは、あなたが知られている場所にファイルを置くことができるように、(例えばC:\を)--settingsオプションを使用してMVNコマンドラインでカスタムsettings.xmlファイルを指定して、Mavenのに設定を渡すジェンキンスを伝えることができます--settings C:\settings.xmlのようなものです。

Jenkinsのスレーブを実行するために新しいWindowsユーザーを作成すると、設定ファイルをどこから検索するのかが簡単にわかります。

+1

ありがとう、私はスレーブサービスをローカルユーザーと設定として実行するように設定しました。最終的にC:/users/myuser/.m2/のxmlが取得されました。その他:デフォルトのシステムユーザで、他の設定がない場合は、Mavenインストールフォルダのsettings.xmlが使用されます。 – Rob

1

私にとって、これは-Duser.home変数を使用していました。

私はこれを動作させました!しかし、 をMAVEN_OPTSに入力する代わりに、configure jenkinsの画面で、JVMレベルの変数としてWebサーバーに入力しました。

私の場合、私はwindcatの代わりに、WinTellでglassfishを使用しています。 Glassfishは Windowsサービスとして開始します。基本的には入力された:

JVM変数名:のuser.home JVMの値は:次に

を/data/maven-2.2/jenkins、このディレクトリに/data/maven-2.2/jenkinsはあなたのコピーを持っていることを確認してください 有効なsettings.xmlに、プロキシ情報を正しく入力してください。これにより、 は、私のjenkinsサービスビルドvログの別のsettings.xmlを、対話形式で に隔離することができます。

Eric

関連する問題