( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

scala-2.7.2 finalのvscaladoc作ったよ

いまSwingScalaで遊んでるんだけど、scaladocで出力したAPIドキュメントだとちょっといろいろ調べにくいなと思って、
vscaladocでscalaのAPIDocumentを作ってみようと思いました。


できたものをGithubにあげときますので、使いたい人はどうぞ。
documents/vscaladocs/scala-library-2.7.2.zip at master · yuroyoro/documents · GitHub

手順

vscaladocでのドキュメントは、今後のscalaのリリースにも含めない方針らしいので、
リリースされるたびにがんばって作る必要がありそう。
なので、今後に備えて手順をメモしておきます。

scalaのビルド

まずは、scalaのソウスがないと話になりゃーせん。
ここに書いてあるとおり、
svnで落っことしてきます。

svn co http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk scala


次は、ビルドします。
方法はここに書いてあります。
scalaはantでビルドするようになっているので、antコマンドをうちます。
targetは特に指定しなくておけ。

vscaladocのビルド

今の自分の環境はscala2.7.2になっているので、バイナリで落としてきたvscaladocは動かない可能性が高い。
ので、vscaladocも2.7.2でビルド。


vscaladocはgoogle codeにおいてあるので、ここ
書いてあるとおりにsvn coするっす。

svn checkout http://vscaladoc.googlecode.com/svn/trunk/ vscaladoc-read-only


落としてきたら、ビルドします。
vscaladocはmavenでビルドするので、pom.xmlを修正します。
pom.xml内にscalaのバージョンを指定している場所があるんで、そこを2.7.2に変更するっすよ。

  <properties>
    <scala.version>2.7.2</scala.version>
  </properties>


あとは、mvn packageでできあがり。
できあがったjarファイルは、mvn install:install-fileで、pom.xmlに書いてある通りのGroupIdとArtifactIdを指定して、
ローカルリポジトリにブッこんでおきます。

scalaソースからvscaladocを生成

vscaladocを出力する方法は、mavenプロジェクトだとpom.xmlの<reporting>タグ内のmaven-scala-toolsに<configuration>タグで
<vscaladocVersion>タグを突っ込めばいいんだけど、scala本体はantでのビルドなのでこの方法ではできませぬ!


かわりに、javaコマンドからvscaladocをたたく方法がここに書いてあります。
で、めんどうなのが、各ソースファイルのディレクトリを一つ一つ指定していかなければならないこと。
パッケージが大量にあるので指定が大変。
とりあえず力業でtree -dfiで出力したディレクトリを全部シェルに書いて実行しました。


これでやっと完成!
書いたシェルはこんなの。もっといい方法はないものか?

#!/bin/bash
REPO=$HOME/.m2/repository
SCALA_VERSION=2.7.2
mkdir -p target/site/scaladocs

java -classpath $REPO/org/scala-lang/scala-dbc/$SCALA_VERSION/scala-dbc-$SCALA_VERSION.jar:$REPO/org/scala-lang/scala-library/$SCALA_VERSION/scala-library-$SCALA_VERSION.jar:$REPO/org/scala-lang/scala-compiler/$SCALA_VERSION/scala-compiler-$SCALA_VERSION.jar:$REPO/org/scala-lang/scala-decoder/$SCALA_VERSION/scala-decoder-$SCALA_VERSION.jar:$REPO/org/scala-tools/vscaladoc/1.2-SNAPSHOT/vscaladoc-1.2-SNAPSHOT.jar -Xbootclasspath/a:$REPO/org/scala-lang/scala-library/$SCALA_VERSION/scala-library-$SCALA_VERSION.jar org.scala_tools.vscaladoc.Main -classpath ./target/classes:$REPO/org/scala-lang/scala-library/$SCALA_VERSION/scala-library-$SCALA_VERSION.jar:$REPO/org/scala-lang/scala-vscala$SCALA_VERSION/scala-compiler-$SCALA_VERSION.jar -d ./target/site/scaladocs   -windowtitle "scala library $SCALA_VERSION API" -doctitle "scala library $SCALA_VERSION API" ./src/actors/scala/actors/*.scala ./src/library/scala/*.scala ./src/library/scala/collection/*.scala ./src/library/scala/collection/immutable/*.scala ./src/library/scala/collection/jcl/*.scala ./src/library/scala/collection/mutable/*.scala ./src/library/scala/compat/*.scala ./src/library/scala/concurrent/*.scala ./src/library/scala/io/*.scala ./src/library/scala/mobile/*.scala ./src/library/scala/ref/*.scala ./src/library/scala/reflect/*.scala ./src/library/scala/runtime/*.scala ./src/library/scala/testing/*.scala ./src/library/scala/text/*.scala ./src/library/scala/util/*.scala ./src/library/scala/util/automata/*.scala ./src/library/scala/util/grammar/*.scala ./src/library/scala/util/logging/*.scala ./src/library/scala/util/matching/*.scala ./src/library/scala/util/parsing/*.scala ./src/library/scala/util/parsing/ast/*.scala ./src/library/scala/util/parsing/combinator/*.scala ./src/library/scala/util/parsing/combinator/lexical/*.scala ./src/library/scala/util/parsing/combinator/syntactical/*.scala ./src/library/scala/util/parsing/combinator/testing/*.scala ./src/library/scala/util/parsing/combinatorold/*.scala ./src/library/scala/util/parsing/combinatorold/lexical/*.scala ./src/library/scala/util/parsing/combinatorold/syntactical/*.scala ./src/library/scala/util/parsing/combinatorold/testing/*.scala ./src/library/scala/util/parsing/input/*.scala ./src/library/scala/util/parsing/json/*.scala ./src/library/scala/util/parsing/syntax/*.scala ./src/library/scala/util/regexp/*.scala ./src/library/scala/xml/*.scala ./src/library/scala/xml/dtd/*.scala ./src/library/scala/xml/factory/*.scala ./src/library/scala/xml/include/*.scala ./src/library/scala/xml/include/sax/*.scala ./src/library/scala/xml/parsing/*.scala ./src/library/scala/xml/path/*.scala ./src/library/scala/xml/persistent/*.scala ./src/library/scala/xml/pull/*.scala ./src/library/scala/xml/transform/*.scala ./src/swing/scala/swing/*.scala ./src/swing/scala/swing/event/*.scala ./src/swing/scala/swing/model/*.scala ./src/swing/scala/swing/test/*.scala