質問

Jenkins Master(小さなLinuxボックスで実行)とJenkinsスレーブ(「正しい」XPマシンで実行されている)があります。

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 hudson.remoting.Channel@ee5bc4: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ファイルをどのように定義することができますか?

役に立ちましたか?

解決 2

いつものように、ソリューションは私が考えていたよりも簡単でした。

Jenkins Slaveは、システムユーザーが実行するように構成されています。結果として、それが私のsettings.xmlを使用するために、私がしなければならなかったのは、関連するユーザーを変更することだけでなく、問題が消えました!

他のヒント

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

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

したがって、あなたの状況で可能であると仮定する最も簡単なソリューションは、正しいsettings.xmlファイルをにコピーすることです。 %HOME%\.m2\ Jenkinsスレーブマシンのディレクトリ。

または、MVNコマンドラインにカスタムsettings.xmlファイルを指定することもできます。 --settings オプションであるため、ファイルを既知の場所に配置できます(例: C:\)そして、ジェンキンスに設定を渡すように指示します。 --settings C:\settings.xml.

余談ですが、Jenkins Slaveを実行する新しいWindowsユーザーを作成して、構成ファイルの検索場所を簡単に判断できるようにすることがよく役立ちます。

私にとって、これを機能させたのは、-duser.home変数を使用することでした。

私はこれを機能させました!ただし、構成Jenkins画面でMaven_optsに入力する代わりに、WebサーバーにJVMレベル変数として入力しました。

私にとっては、トムキャットの代わりにウィンテルでグラスフィッシュを使用しています。 GlassfishはWindowsサービスとして始まります。基本的に入力:

JVM変数名:user.home jvm値:/data/maven-2.2/jenkins

次に、このDirectory /data/maven-2.2/Jenkinsでは、有効なsettings.xmlのコピーが正しく入力されていることを確認してください。そうすることで、Jenkins Servicesの個別のsettings.xmlを隔離することができます。

エリック

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top