Jenkins 日本語が含まれるジョブのインポート

Jenkinsのジョブをエクスポート/インポートしてみました。
Jenkinsに登録されているJob設定のインポート・エクスポート(CSRF対策)

Jenkinsのジョブの説明文などに日本語が含まれている場合、
エクスポートは問題ないのですが、インポート時エラーとなります。

インポートするファイル

<?xml version='1.1' encoding='UTF-8'?>
<project>
<description>日本語のジョブ説明文</description>
<keepDependencies>false</keepDependencies>
<properties/>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers>
    <hudson.triggers.TimerTrigger>
     <spec>H 5 * * * </spec>
    </hudson.triggers.TimerTrigger>
</triggers>
<concurrentBuild>false</concurrentBuild>
<builders>
    <hudson.tasks.Shell>
     <command>echo hello world</command>
    </hudson.tasks.Shell>
</builders>
<publishers/>
<buildWrappers/>
</project>



実行時のエラー

javax.xml.transform.TransformerException: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 17; ドキュメントの要素コンテンツに無効なXML文字(Unicode: 0x97)が見つかりました。
    at java.xml/com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:786)
    at java.xml/com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:370)
    at jenkins.util.xml.XMLUtils._transform(XMLUtils.java:209)
    at jenkins.util.xml.XMLUtils.safeTransform(XMLUtils.java:81)
    at hudson.model.AbstractItem.updateByXml(AbstractItem.java:872)
    at hudson.model.AbstractItem.doConfigDotXml(AbstractItem.java:815)
    at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)




諦めて日本語の箇所は一旦削除し、インポートしたあと手動で設定していたのですが面倒です。

ふとエスケープしれやればいいのかなと思い調べてみました。
https://www.ipentec.com/document/html-embed-unicode-c

日本語の箇所をこちらのサイト
https://www.marbacka.net/msearch/tool.php
HTML数値文字参照(16進数表記)
を指定して変換します。


<?xml version='1.1' encoding='UTF-8'?>
<project>
  <actions/>
  <description>&#x65E5;&#x672C;&#x8A9E;&#x306E;&#x30B8;&#x30E7;&#x30D6;&#x8AAC;&#x660E;&#x6587;</description>
  <keepDependencies>false</keepDependencies>
  <properties/>
  <scm class="hudson.scm.NullSCM"/>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers>
    <hudson.triggers.TimerTrigger>
      <spec>H 5 * * * </spec>
    </hudson.triggers.TimerTrigger>
  </triggers>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.Shell>
      <command>echo hello world</command>
    </hudson.tasks.Shell>
  </builders>
  <publishers/>
  <buildWrappers/>
</project>


これで無事日本語が含まれた設定もインポートできるようになりました。

a18_01.png

関連記事

コメント

非公開コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ