2011年5月11日水曜日

Javadocを英語で生成する方法

Javadocを英語で生成しようと思ったらちょっと嵌ったのでメモ。

EclipseでJavadocを英語で生成する場合

Eclipseで、「プロジェクト」→「Javadoc の生成」からJavadocを生成させる場合、そのまま生成するとデフォルトのロケール設定が使用されて日本語でJavadocが生成される。
これを英語で生成させたい。

「Javadoc の生成」→「次へ」→「次へ」で表示されるダイアログに「追加の javadoc オプション」というのがあるので、これにロケールの指定「-locale en_US」を加えればいいのかと思ったが、「javadoc: エラー - オプション -locale は、コマンド行の最初に指定する必要があります。」というエラーが出てしまう。
仕方なく「VM オプション」の方に「-locale en_US」を指定すると、一応は英語でJavadocを生成できた。

で、これを毎回ダイアログからポチポチ実行するのも面倒なので、Antで実行させようと思ったら嵌った。

AntでJavadocを英語で生成する場合

単純に上の「Javadoc の生成」ダイアログで、「この Javadoc エクスポートの設定を Ant スクリプトとして保管」にチェックを付けてEclipseに生成させたjavadoc.xmlをAntで実行しても、「javadoc: エラー - オプション -locale は、コマンド行の最初に指定する必要があります。」という上と同じエラーが出てしまう。

Eclipseに生成させたjavadoc.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="javadoc">
  <target name="javadoc">
    <javadoc
      access="public"
      additionalparam="-locale en_US -encoding utf-8 -charset utf-8"
      author="true"
      classpath="."
      destdir="doc"
      nodeprecated="false"
      nodeprecatedlist="false"
      noindex="false"
      nonavbar="false"
      notree="false"
      source="1.6"
      sourcepath="src"
      splitindex="true"
      use="true"
      version="true"
    />
  </target>
</project>

javadocタグにはlocale属性があるから、代わりにそっちで指定すればいいのかと思ったんだけど、相変わらず日本語で生成されてしまう。

ダメだったパターン(抜粋)
  <target name="javadoc">
    <javadoc
      locale="en_US"
      access="public"
      additionalparam="-encoding utf-8 -charset utf-8"
      author="true"
      classpath="."
       ・・・省略・・・
    />
  </target>

すごく悩んだ末、「locale」の代わりに「-J-Duser.language=en_US」を指定したら、何とか英語で生成できた。

何故かうまくいったパターン(抜粋)
  <target name="javadoc">
    <javadoc
      access="public"
      additionalparam="-J-Duser.language=en_US -encoding utf-8 -charset utf-8"
      author="true"
      classpath="."
       ・・・省略・・・
    />
  </target>

だいぶ無理やり感が強いんだけど、こんなんであってんだろうか?正攻法じゃない気がする。 そもそも何でjavadocタグのlocale属性が効かないんだろう。バグなんじゃないだろうか?

まぁ、悩んでも仕方ないので、他に正式な方法が見つかるまではこれでよしとしよう。

0 件のコメント:

コメントを投稿