2017-02-23 4 views
1

Windows Server 2012でJenkins 2.25サーバーを実行しています。現在、Maven Integration Plugin 2.12.1とJob DSL Plugin 1.57を使用しています。job-dslによって生成されたJenkinsジョブがデフォルトのMaven設定を受け取りません

私は、私たちのサーバー上の約200の既存のジョブのDSLスクリプトを書いています。

ビルドのステップとして、または実際のMavenとしてMavenを使用するジョブでは、本当にイライラする問題があります。生成されたジョブを実行すると、次の出力で失敗します。

12:17:12 [ERROR] Failed to execute goal com.googlecode.maven-download- plugin:download-maven-plugin:1.3.0:wget (default) on project myprojecy: The  parameters 'url' for goal com.googlecode.maven-download-plugin:download-maven-plugin:1.3.0:wget are missing or invalid -> [Help 1] 
12:17:12 [ERROR] 
12:17:12 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
12:17:12 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 
12:17:12 [ERROR] 
12:17:12 [ERROR] For more information about the errors and possible solutions, please read the following articles: 
12:17:12 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginParameterException 

は、最初は私たちも、彼らがUIにする必要があり、これらの設定はなかった登場考え、我々はXMLスニペットを逃したことがあるとして、問題を識別思いました。

configure { node -> 
node/settings (class: 'jenkins.mvn.DefaultSettingsProvider') { 
} 
node/globalSettings (class: 'jenkins.mvn.DefaultGlobalSettingsProvider') { 
} 
node/injectBuildVariables ('false') { 
} 
} 

しかし、私はそれらを実行しようとすると、ジョブがまだ期待通りXMLは、今このスニペットが含まれていても、失敗:

<settings class="jenkins.mvn.DefaultSettingsProvider"/> 
<globalSettings class="jenkins.mvn.DefaultGlobalSettingsProvider"/> 
<injectBuildVariables>false</injectBuildVariables> 

だからスクリプトにこれを追加しました。

私はうまくいかない2つの非常に奇妙なことが明らかに関連しています。まず、ジョブが失敗した後、私が手動でジョブの「構成」を選択して保存した場合(すなわち実際の変更を行わない場合)、ジョブは永遠にさらに正常に実行されます(シードジョブが実行され、 )。

第2に、シードジョブを実行した後のジョブ設定履歴で、システムユーザーの下でシードジョブが実行されたときの変更が表示されます。しかし、たった数秒で、毎回私のユーザ名の下に別の設定変更が記録されます。私は仕事の設定を変更していないにもかかわらず、これは私を変えずに仕事を保存することとは無関係ですそれは即座に起こります。

さらに、私のDSL生成ジョブに適用されていないMavenのデフォルト設定がいくつかあることを私に示唆しておく必要があります。 Mavenの目標に-Xスイッチを追加すると、これらのジョブがどこに失敗しているかについての詳細がわかりました。出力は次のとおりです。ジョブの実行に成功(ポスト偽の設定変更)にこれらのフィールドのいくつかは、例えば、キーストアのURLのために、満ちている

15:06:31 [DEBUG] Goal:   com.googlecode.maven-download-plugin:download-maven-plugin:1.3.0:wget (default) 
15:06:31 [DEBUG] Style:   Regular 
15:06:31 [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?> 
15:06:31 <configuration> 
15:06:31 <cacheDirectory>${download.cache.directory}</cacheDirectory> 
15:06:31 <checkSignature default-value="false">${checkSignature}</checkSignature> 
15:06:31 <failOnError default-value="true"/> 
15:06:31 <outputDirectory default-value="${project.build.directory}">D:\data\jenkins\workspace\project\target</outputDirectory> 
15:06:31 <outputFileName>${jarsigner.keystore.filename}</outputFileName> 
15:06:31 <overwrite>${download.overwrite}</overwrite> 
15:06:31 <readTimeOut default-value="0"/> 
15:06:31 <retries default-value="2"/> 
15:06:31 <session>${session}</session> 
15:06:31 <skip default-value="false">${download.plugin.skip}</skip> 
15:06:31 <skipCache default-value="false"/> 
15:06:31 <unpack default-value="false">false</unpack> 
15:06:31 <url>${jarsigner.keystore.url}</url> 
15:06:31 </configuration> 

。これは明らかに問題ですが、私は何をすべきか分かりません。限り、私はこれはgroovyに上記のconfigureブロックを含めることで解決する必要があると言うことができますが、何とか私のジョブがこれを逃している(しかし、彼らはそれを変更なしでジョブを再度保存した後に持っている)。

私はここで間違っているのを誰も見ることができますか?

<jvmOptions></jvmOptions> 

空であるにもかかわらず、これは任意のデフォルトのMavenのオプションをオーバーライドしているようだが、その後、ジョブが保存されます時に、再び、これはので、取り出して:

+0

質問の2番目の部分については、https://groups.google.com/d/msg/job-dsl-plugin/Ab9dHd1LnZU/dBO--SO2AAAJをご覧ください。 – daspilker

答えて

1

問題が自動的に生成されたXMLでこのコードですそれは空です。グルーヴィーなスクリプトにこれを追加することで解決:

configure({ 
      it.remove(it/'jvmOptions') 
     }) 

これはDSLのバグである可能性が高いようだが、それは私の同僚と私はこれの一切の言及を見つけることができなかったことは驚くべきことです。とにかく、上記は私のためにこれを解決しました。

関連する問題