差分表示


*OpenGrok

[[OpenGrok at OpenSolaris.org>http://opensolaris.org/os/project/opengrok/]] (Project Homepage)

OpenGrokは現在 OSSとして公開されている OpenSolarisを公開することに併せて、
実装・OSS公開された Cross-Refernece source browserです。~
0.9系のLXRに比べて現時点(0.3.1)では C, Java, Borne shell, XMLと対象とする
言語は少ないですが、これに加えてELF、Javaのクラスと言ったオブジェクトファイルや、
JAR,TAR,ZIP,BZIP2と言ったアーカイブ、Troff(man用)が Index付けする対象となっています。

source browserとしてはLXRより機能的に使いやすい/セットアップが簡単なので、
C/Javaをメインで使っている開発ではこちらの方が有効でしょう。

* いいとこ・わるいとこ
同じように使える LXRと比した利点・欠点は以下の通りです。
,good/bad,what's?
,very good,単体で単語検索の他にphase検索も可能
,good,使えるまでの下準備があまりいらないので、すぐ使えるようにできる
,bad,対応言語が少ない。PHP、Perlなどにも対応して欲しい
,too bad,ファイルに含まれる日本語が適切に処理をされない
//,good,standalone版があるので、個人利用ならweb containerはいらない。

* OpenGrok 0.7.0 was released on 2008/10/17
[[annouce>http://opensolaris.org/os/project/opengrok/announcements/?monthYear=October+2008]]~
うわー、0.6.1のやつ書いたばっかりの頃じゃーん。orz

ま、それはそれとして、どうも path.csvの扱いが変わったっぽいので、下記のscriptはちょっと直す予定。0.7の新機能や変更で興味深いのは
-JMX対応。状態監視とか管理が簡単になったらしい。
-JUnitのtestcaseが同梱され始めた。0.7で 61%の block coverage、0.8で70%を目指しているらしい。
-0.7とこれ以前ではindexに互換性が無いので、upgrade時には0からindexingしなおす必要がある
-0.7以前に作成したconfigファイルは使えない%%%かもしれない%%%ので、-W Optionで作り直すことが推奨。
-Java 6必須

* OpenGrok 0.6.1 was released on 2008/04/11
[[announce>http://opensolaris.org/os/project/opengrok/announcements/?monthYear=April+2008]]~
暫く見て無い間に、0.6(2008/03/12)と0.6.1がreleaseされました。追加対応されたParserは Tcl/TKとSQLです。0.5 releaseの時にProjectは結局使うのをやめたのですが、これはこれを機会に改めて0.6.1で使ってみようと思います。

Projectを使った場合のsetup手順は後日記載予定です。改めてDocumentとか見てみると半年ぐらい前と比べて内容が変わってます。こちらもcatch upしておく予定です。

**0.6.1 1st impression
-1. 2008/06/12時点で svn repositryにのってないのに 0.6.1のtarballに入っているEXAMPLE.txtは0.5の時にrepositryにあってtarballに入ってなかった奴とファイル名は一緒。とは言え中身はガラっと変わって(る気がするw)、最終的に無くなるのもなんとも。。。
-2. MainFrame.javaを見ると rev234では当該のaction(Index database...)がOptionメニューからなくなりました。GUIをあげてIndexingするのが結構楽で好きだったから、Forumからクレームwなげるか?・・・目指す方向性が自分が求めるところと、0.6系から違ってきたのを感じます。
-3. 恐らく0.6になった時点で build.xmlのtaskが変更されてます。webapp taskが無くなったのが ;;
--NetBeans Projectになったことに伴う build.xmlの修正で、諸々 antから直呼びするのは、dist以外ない雰囲気です。stableのsrc tarballを展開してそのまま NetBeans(6.0調べ)に取りこめましたが、そのままでは buildもままならない辺りから見ると、色んな意味で0.5以降は過渡期のように感じます。

**0.6.1動作ちょこっと調べメモ
-1. Main-Classは org.opensolaris.opengrok.index.Indexer。引数が無くてGUI環境なら MainFrame.main()が処理を引き継ぐ。そうでない場合は Indexerクラスがそのまま継続処理。org.opensolaris.opengrok.util.Getoptで引数処理をしている。-?がHelpになってないのは、Indexerの105行目以降の引数処理switch-case部分に ? が無いから、爽やかにdefaultに行ってる。

* OpenGrok 0.5 was released on 2007/08/20
[[announce>http://www.opensolaris.org/os/project/opengrok/announcements/]]~
仕事で使ってるので心待ちにしていた 0.5のrelease announceが出ました。ParserのenhanceはLispと謎ぃw感じですが、既にOpenSolaris.orgサイトのブラウザでは使われている Project対応と検索のwildcard対応が今回の目玉だと思います。

早速社内のソースコードブラウザを0.4から0.5にupgradeしてみて、下記に記載していないことがあれば追記します。
-1. srcからjavadocを作るのに [[JFlex>http://jflex.de]]が必要
--projectのタグ付けの手順がドキュメント化されてないので、中身を読むハメにw
--添付されているbuild.xmlを使うには、JFlexが必要です。著作権の問題でOpenGrokにはbundleされていません。JFlex絡みの箇所(=jflexタグと、jflexをtaskdefしてるとこ)をbuild.xmlから外せば webappタスクが実行できます。従って、compile/buildタスクも出来るので JFlex.jarをdonwloadして CLASSPATHに入れるなり libにいれるなりしないでも問題ないです。
-2. いろいろ見てみた結果、手順は以下の tar.gz archiveに無いファイルに記載があると発覚。
--http://cvs.opensolaris.org/source/xref/opengrok/trunk/EXAMPLE.txt
-- -P/-pオプションがプロジェクトの機能に関連するものぽい。まだ動いてない(idxがhangする)ので、実態はなんとも不明。

* setup手順
MainFrameからIndexingする機能が排除されたので、更新してみました。

**0.6以降版
Project機能を使ってみます。また折角なので src buildから始めました。

動作確認をする上で、以下の条件で行ないました。
-1. BASEDIR配下に src、data、展開した 0.6.1-srcを置いて 0.6.1-src展開ディレクトリがworiking directry(= BASEDIR/opengrok-0.6.1-srcがworiking directory)
-2. indexing対象は OpenGrokの 0.4、0.5と 0.6.1-srcを展開したもの。src配下に全て配置(*1)
-3. webappの context rootは /opengrokにする。Web Containerは tomcat 5.5.20(あったからw)

例によって作業はUNIXで行うと仮定していますが、Windowsの場合もほぼ同等でしょう。(MS932のsrc treeをindexing後のhyper textが文字化けさせないために・・・と言う話なら Windowsでやりましょう)

-(*1) Projectの src treeが symlinkになっている場合、OpenGrokがうまく動作しないようなことをフォーラムで見かけました。hard linkで頑張るか、copyを用意しましょう。

- ''-1. src build''
--特に手順はありません。src tarballを展開して build.xmlのdefault targetを実行すればいいです。注意事項は下記 4点です。
---[[JFlex>http://jflex.de]]は拾ってきて、JFlex.jarをCLASSPATHに通してください
---hg(=Mercurial)が無い場合、build途中でエラーが出ますが、使わないなら気にしなくていいです。
---build後のbinaryは distディレクトリにあります
---最新版srcは[[公式のfiles>http://opensolaris.org/os/project/opengrok/files]]に書いてあります。hgを使って checkoutできます。
- ''0. 必要なツールの用意'' 
-- [[exuberant ctags>http://ctags.sourceforge.net]]と適当なWeb Containerが必要です。
- ''1. index付け''
--run.shを実行するだけでよいですが、srcに含まれる run.shは wildcard機能無効、config未生成、project未使用なので Indexerに渡すオプションはきっちり書き変えです。最終的な run.shはこんな感じになりました。
--path descを設定すると OpenGrok/WebAppが表示するtopの表示が設定できます。同梱のpaths.tsvを適当に編集します。下記のscriptではpaths.og.tsvにしてあります。.tsvとある通り、key-valueのseparatorは \t です。
---paths.tsvのkey-valueのkeyは OpenGrokで見た場合の path、つまり absolute path - src root pathです。下記の例では opengrok-0.4の場合、/opengrok-0.4 が対応します。
--(
#!/bin/bash
BASEDIR="/home/mage/work/misc/opengrok.20080612"
WORKDIR="$BASEDIR/opengrok-0.6.1-src"
# java opt
HOTSPOT_OPTS="-server -Xmx1024m"
OPENGROK_JAR="$WORKDIR/dist/opengrok.jar"
OPENGROK_JAR_ARG="-jar $OPENGROK_JAR"
JVM_ARGS="$HOTSPOT_OPTS $OPENGROK_JAR_ARG"
# config for cmd behaivor
VERBOSE="-v"
OPTIMIZED="-O on"
QSCAN="-Q off"
CONFIGURATION_XML="$WORKDIR/configuration.xml"
CONFIGURATION_XML_OPT="-W $CONFIGURATION_XML"
CTAGS="-c /usr/local/bin/ctags"
CMD_ARGS="$VERBOSE $OPTIMIZED $QSCAN $CONFIGURATION_XML_OPT $CTAGS"
# config for webapp behaivor
USE_ASTER="-a on"
WORDMAX="-m 600000"
CROOT="-w opengrok"
WEBAPP_ARGS="$USE_ASTER $WORDMAX $CROOT"
# config for SRC/DATA
SRC_ROOT="$BASEDIR/src"
SRC_ROOT_OPT="-s $SRC_ROOT"
DATA_ROOT="$BASEDIR/data"
DATA_ROOT_OPT="-d $DATA_ROOT"
SD_ARGS="$SRC_ROOT_OPT $DATA_ROOT_OPT"
# config for project
DEFAULT_PROJECT="-p /opengrok-0.6.1-src"
GENERATE_PROJECT_ROOT="-P"
PROJECT_ARGS="$DEFAULT_PROJECT $GENERATE_PROJECT_ROOT"

# test flag for validate options
TEST="-n"
#TEST=

# genrate index
CMD="java $JVM_ARGS $TEST $CMD_ARGS $WEBAPP_ARGS $SD_ARGS $PROJECT_ARGS"
echo $CMD
sh -c "$CMD"

# tree desc
PATH_DESC="$WORKDIR/paths.og.tsv"
EFTAR_CLZ="org.opensolaris.opengrok.web.EftarFile"
CMD="java $JVMARGS -classpath $OPENGROK_JAR $EFTAR_CLZ $PATH_DESC $DATA_ROOT/index/dtags.eftar"
echo $CMD
if [ -z $TEST ]; then
	sh -c "$CMD"
fi

# update configuration to webapp
UPDATE_OPT="-U localhost:2424"
CONFIG_OPT="-R $CONFIGURATION_XML"
CMD="java $OPENGROK_JAR_ARG $UPDATE_OPT $CONFIG_OPT"
echo $CMD
if [ -z $TEST ]; then
	sh -c "$CMD"
fi
--)
- ''2. webapp deploy''
--手順-1で作成されたwebapp binaryの source.warでは SRC_ROOT/DATA_ROOTは未設定の状態で、CONFIGURATIONパラメタとConfigAddress(localhost:2424)の2個が設定された状態となっています。
--- 一つのTomcatで複数のOpenGrokを稼働させて、web.xmlwを更新する場合、上記の設定通信用ポートはwebapp毎に用意する・・・とうまく動くが、今はどうなってるんだろう。
---CONFIGURATIONは -Wオプションで書き出された手順 1の作業の結果を記録した構成ファイルであり、/opengrok/configuration.xmlを指してます。これが見えない場合、WebApp再起動時に構成情報が読めないので、機能しません。再起動すると思われる場合、-Wで出力する設定ファイルを /opengrok/configuration.xmlで見えるようにするか、web.xmlの CONFIGURATIONパラメタを適正に修正しておきましょう。
---ConfigAddressは -Uオプションで設定する対象です。
---今回は手順 -1で作成された webappのbinaryをそのままdeployして -Uオプションで構成を反映する方向で行ってみました。設定では context rootを /opengrokにするので、source.warは opengrok.warに renameしてdeployします。(前述のスクリプトには最期に仕込んであります。
-''3. スクリプト実行結果''
--事前準備をしておけば、上記のscriptを1回動かすだけで、project対応のtreeができ上がります。これはこれで簡単だ。(*1)

-(*1) 2回目以降のscript実行の際には、そのまま実行すれば差分だけが indexingされます。ktkr

*** まとめ・かんたん3手順クッキング
-1. web containerに cotext rootに合わせた名前に source.warを変えて deploy。動作させておく
-2. src treeをまとめて、indexをいれるdataの場所を用意する。
-3. 上記のscriptを条件に合わせて修正して実行する

*** 0.6版向け scriptのbat版
既存環境を WinXPに移行するにあたって vbsとか csharpにしようと思いつつ、
結局 batで書いたのを載せときます。
TEST の設定に沿った動作も微妙にちがうのはスルーしてください orz

---(
@echo off
SETLOCAL

SET BASEDIR=C:\tomcat.5.5.26
SET WORKDIR=%BASEDIR%\opengrok-0.6.1

REM java opt
REM SET HOTSPOT_OPTS=-server -Xmx1024m
SET HOTSPOT_OPTS=
SET OPENGROK_JAR=%WORKDIR%\opengrok.jar
SET OPENGROK_JAR_ARG=-jar %OPENGROK_JAR%
SET JVM_ARGS=%HOTSPOT_OPTS% %OPENGROK_JAR_ARG%

REM config for cmd behaivor
SET VERBOSE=-v
SET OPTIMIZED=-O on
SET QSCAN=-Q off
SET CONFIGURATION_XML=%WORKDIR%\configuration.xml
SET CONFIGURATION_XML_OPT=-W %CONFIGURATION_XML%
SET CTAG_ARGS=-c "C:\bin\ctags.exe"
SET CMD_ARGS=%VERBOSE% %OPTIMIZED% %QSCAN% %CONFIGURATION_XML_OPT% %CTAG_ARGS%

REM config for webapp behaivor
SET USE_ASTER=-a on
SET WORDMAX=-m 600000
SET CROOT=-w netbackup
SET WEBAPP_ARGS=%USE_ASTER% %WORDMAX% %CROOT%

REM config for SRC/DATA
SET SRC_ROOT=G:\data\src
SET SRC_ROOT_OPT=-s "%SRC_ROOT%"
SET DATA_ROOT=G:\data\src2\OpenGrok\data
SET DATA_ROOT_OPT=-d "%DATA_ROOT%"
SET SD_ARGS=%SRC_ROOT_OPT% %DATA_ROOT_OPT%

REM config for project
SET DEFAULT_PROJECT=-p /6.5.1
SET GENERATE_PROJECT_ROOT=-P
SET PROJECT_ARGS=%DEFAULT_PROJECT% %GENERATE_PROJECT_ROOT%

REM test flag for validate options
SET TEST=-n
REM SET TEST=

REM genrate index
SET CMD=java %JVM_ARGS% %TEST% %CMD_ARGS% %WEBAPP_ARGS% %SD_ARGS% %PROJECT_ARGS%
echo %CMD%
%CMD%

REM tree desc
SET PATH_DESC=%WORKDIR%\paths.og.tsv
SET EFTAR_CLZ=org.opensolaris.opengrok.web.EftarFile
SET CMD=java %JVMARGS% -classpath %OPENGROK_JAR% %EFTAR_CLZ% %PATH_DESC% %DATA_ROOT%\index\dtags.eftar
echo %CMD%

REM defined(TEST)
echo %TEST% > NUL
SET TEST_IS_DEFINED=ERRORLEVEL
if %TEST_IS_DEFINED% == 0 ( 
	%CMD%
) else ( 
	echo "do nothing" 
)

REM update configuration to webapp
SET UPDATE_OPT=-U localhost:2424
SET CONFIG_OPT=-R %CONFIGURATION_XML%
SET CMD=java %OPENGROK_JAR_ARG% %UPDATE_OPT% %CONFIG_OPT%
echo %CMD%

if %TEST_IS_DEFINED% == 0 ( 
	%CMD%
) else ( 
	echo "do nothing" 
)
---)

**0.5以前版
公式のマニュアル相当は下記にあります。~
http://www.opensolaris.org/os/project/opengrok/manual

下記ではとりあえず使える用にする迄の手順を記載します。
作業はUNIXで行うと仮定していますが、Windowsの場合もほぼ同等です。
- ''0. 必要なツールの用意''
-- [[exuberant ctags>http://ctags.sourceforge.net]]と適当なWeb Containerが必要です。
tomcat5.5.xとSJS AS8.2PEでは動作を確認しましたが、基本的にWeb Containerであれば
何でも良いようです。
- ''1. index付け(/w CLI)''
-- 同梱のrun.shの SRC_ROOT(index付けする対象ソースのルート)と DATA_ROOT(index付けしたデータを格納するディレクトリ)を絶対パスで記載して、実行します。これで DATA_ROOTにindex付けされた情報が格納されます。SRC_ROOTがCVS管理されている場合、DATA_ROOTにCVS repositoryからcheck outして index付けします。
- %%''1. index付け(/w GUI)''%% (0.5以前)
-- run.shを利用しないで、GUIでも実行可能です。run.shが上手くいかないときはこちらをお奨めします。
opengrok-[version].tar.gzを展開したディレクトリにある opengrok.jarを以下の通り実行すると、
indexを見て単体で動作する cscopeのようなswingベースのアプリケーションとして動作します。
これでもindex付けが可能です。
-- ''1.1 standalone版起動''
 % java -jar opengrok.jar -c [ctagsのパス] -s [SRC_ROOT] -d DATA_ROOT

0.5までは -d optionでDATA_ROOTを指定しなくても、末尾に書いておけばよかったのですが、必要は無かったですが、0.6.1では-d optionで明示的に指定しないとエラーになります。なんか0.6系は微妙な感じ? orz

-- ''1.2 index付け''
画面の3個目のボタンを押して待つだけです。これが終わると、standalone版として cscopeのように使うことが出来ます。
- ''2. webapp の設定''
-- 同梱されている source.warを適当なWeb Containerにdeployすれば、1で作った indexを見に行きます。
---同梱されているwarの WEB-INF/web.xmlに SRC_ROOTとDATA_ROOTを設定する箇所があるので、これを
修正してdeployすれば [context root]/ でtop画面、[context root]/xref でソースツリーのトップが表示されます。
---%%どうやるのを期待されているか分りませんが、conf/default/web.xmlを修正して、ant webappで source.warをが用意できます。%%
---残念ですが、webapp targetは0.6系で無くなりました。雰囲気、NetBeans前堤になった・・・のかしら?
---MLの流れを見ていると、GUIは全面的に喪失の模様です(2008/08/13付)

*日本語ソース for OpenGrok-0.5
OpenGrokで見る対象のソースが日本語(SJIS)を含んでいる場合、そのまま使うと standaloneなら問題ないが、WebContainerがTomcat(5.5系以降では確認)の場合、爽やかにISO-8859なんで、日本語が表示されなくて切ないことになる。

%%対応だが、Servletの出力(=srcの表示)にはFilterの実装クラスを用意して、web.xmlでServlet chan上で先にコードの処理、jsp出力に関して個々のjspを見てISO-8859っていたら、page contentType="text/html; charset=Windows-31J" な感じで対応してみる予定。実際に期待通りに稼動したら作業をログを更新するとして、もっといい方法があれば知りたいもんだ。%%

OpenGrokはxrefで表示する結果を parse時に DATA_ROOT/xref配下に生成していて、
jspではそのファイルをopenして出力しているだけ。なので、parseして 
xrefのファイルを作る時点で化けてるから、parserを修正しないとだめとわかた。。。
jspに関しては、個々に encodingを指定はしないで、ServletFilterで文字コードを
設定する方法を取った。OpenGrokのwebappでは filterを使ってないし、
ソースの文字コードは統一されている確率が100%に近いので妥当な選択だろう。

** ja patched E ctags
[[ctags日本語対応版>http://hp.vector.co.jp/authors/VA025040/ctags/]]を提供されてる方がいます。5.7なので現行最新(2007-11-09付)版まで提供されてます。

// 結局、自前のctagsが先に入っていて、そっちがおかしかっただけだった orz
// ***OpenGrok 0.6.1の罠・・・なのかな?
// 2008/08/14調べだが、 win32版ja patched ectags(= ec57j1w32bin.zipに含まれる ctags.exe)の --version出力は以下の通り
// ---(
// % ctags --version
// ctags (GNU Emacs 21)
// Copyright (C) 1999 Free Software Foundation, Inc. and Ken Arnold
// This program is distributed under the same terms as Emacs
// ---)
// であり、OpenGrok 0.6.1が実行時にectagsか否かの判定をしているのは
// ---(
// in org/opensolaris/opengrok/configration/RuntimeEnvironment.java
// 
// 228  try {
// 229    ctagsProcess = Runtime.getRuntime().exec(new String[] {ctags, "--version" });
// 230  } catch (Exception e) {
// 231  }
// 232  try {
// 233    BufferedReader cin = new BufferedReader(new InputStreamReader(ctagsProcess.getInputStream()));
// 234    String ctagOut;
// 235    if (!((ctagOut = cin.readLine()) != null && ctagOut.startsWith("Exuberant Ctags"))) {
// 236        System.err.println("Error: No Exuberant Ctags found in PATH!\n" +
// 237                "(tried running " + ctags + ")\n" +
// 238                "Please use option -c to specify path to a good Exuberant Ctags program");
// 239        return false;
// 240    }
// ---)
// と言う感じに、出力1行目に''Exuberant Ctags''が存在するか否かとなっている。
// UNIX版ctagsの場合は爽やかに
// ---(
// $ ctags --version
// Exuberant Ctags 5.7J1, Copyright (C) 1996-2007 Darren Hiebert
//   Compiled: Nov  9 2007, 11:51:51
//   Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
//   Japanese patch  by Hirohito Higashi <h_east@pop11.odn.ne.jp>
//                      http://hp.vector.co.jp/authors/VA025040/
//   Optional compiled features: +wildcards, +regex, +kanji
// ---)
// となっていて、機能する形になっている。「どうすっか、これゎ・・」と悩んでsrc同梱版(ec57j1w32.zip)に含まれるctags.exeを見てみたら、爽やかに
// ---(
// % ctags --version
// Exuberant Ctags 5.7J1, Copyright (C) 1996-2007 Darren Hiebert
//   Compiled: Sep 11 2007, 19:51:57
//   Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
//   Japanese patch  by Hirohito Higashi <h_east@pop11.odn.ne.jp>
//                      http://hp.vector.co.jp/authors/VA025040/
//   Optional compiled features: +win32, +regex, +internal-sort, +kanji
// ---)
// となっていて事なきを得た。OpenGrokとセットの場合は、src同梱版のbinaryを使いましょう。
// 
// ちなみに上記のRuntimeEnvironment.javaの--versionから正しいectagsか否か判定するところは rev99付近で加わった模様。これ以前はConfig時のチェックは無かった。(多分、その後のcheckも見てないけどないと思う)

**Lucene-JA
OpenGrokのIndexing実装は[[apache Luceneプロジェクト>http://lucene.apache.org/]]のIndexerを使っている。このため日本語のindexingが出来ないのはOpenGrokのProjectで提供されているsrc部分に依存するのではなく、
libとして使っている Luceneの問題である。で、順当に日本語で全文検索をするためのLucene日本語版が
[[dev.java.net>https://sen.dev.java.net/]]のprojectにある。
OpenGrokのIndexWriterに渡すAnalyzerをJapaneseAnalyzer()にすれば良さそうだが、
色々いじらないとだめっぽい気がしてきた。
//それなら漏れがぁー''確率は2007-11-13現在で49%かぬ

-参考URL
--[[TechScoreのLucene記事>http://www.techscore.com/tech/ApacheJakarta/Lucene/index.html]]

**xxxAnalyzerの確定のされ方
AnalyzerGru.getAnalyzer(in, path)で呼び出されるfind()でなにを返すか決めている。返し方は
-1. パスからファイル名の拡張子(.xxx)を拾って判定
-2. だめぽな場合はファイルの先頭のmagic numberを拾って判定
-3. 対象外はシラネ

って感じである。

*OpenGrok comandline options (updated 2008-06-13/0.6.1)
適当翻訳。

,new at 0.6(*1),arg,maybe,desc
,,-q,quiet,可能な限り、出力しないで動作する
,,-v,verbose,動作中に進捗状況を表示する
,,-e,economical,経済的に - ディスク使用量を抑える。fileのhyper text x-refを生成しないが、必要に応じて生成するので動作がちょっとは遅くなるだろう。
,,-c /path/to/ctags,ctags,Exuberant Ctags(http://ctags.sf.net)のパス。defaultはPATH環境変数のECtagsを使う
,,-R /path/to/configuration,Read config,指定したファイルから設定を読み込む
,,-W /path/to/configuration,Write config,指定したファイルに現在の設定を書き込む(ので、WebAppも同じ設定を使える)
,,-U host:port,Update config,特定のアドレスに現在の設定を送る(ConfigAddressで設定されたWebApp用途が殆どの場合だろう)
,,-P,projectに対して Pかな,srcルート直下のディレクトリ毎にプロジェクトを作成する
,,-p /path/to/default/project,project,webappでdefaultとするprojectのパス。src rootを外すべきである
,,-Q on/off,Quick,Quickコンテクストスキャンのon/off。デフォルトではファイルの先頭32kがscanの対象であり、これ以上の場合は '[..all..]'リンクが埋め込まれる。これをonにするとサーバが重くなるだろう(注:webappの場合のみ影響を与える設定である)
,,-n,noとか?,全てのコマンドライン引数は処理するが、index生成はしない
,,-H,-hに対するH,全ての外部repositryのhistory cacheを生成する
,''n'',-h /path/to/repositry,history cache,指定したreposのhistory cacheを生成する(src rootからの絶対パス)
,''n'',-r on/off,remote SCM,remote SCMシステム対応のon/off
,''n'',-L path,Layoutとか?,WebAppが要求されるstylesheetのあるディレクトリのパス。以下の組込みが存在する:"defaults"、"offwhite"、"polished"
,,-O on/off,Optimize,index dbの最適化のon/off
,,-a on/off,asterisk,wildcards検索のon/off
,,-w webapp-context,webapp,webappのcotext rootの指定。デフォルトは /source。異なる名前にしたなら、source.warも合わせて変更するように。
,,-i pattern,ignore,除外対象とするfile/directory
,''n'',-A ext:analyzer,analyzer?,指定された拡張子(=ext)のファイルを指定したクラス(analyzer)で解析させる
,,-m number,maximum,fileのindex最大値(default最大値は60000)
,,-S,Search,''外部''のsrc repositryを検索し、(多分、結果に)加えた出力にする
,,-s /path/to/source/root,source root,src treeのroot。
,''n'',-d /path/to/data/root,data root,OpenGrokが生成するdataを配置するdirectory
,''n'',-T number,Thread,index生成をする際に使うスレッドの数。デフォルトでは有効なCPU数と同じ数のスレッド数となる。
,''n'',-?,?,Help。(とは言え、-?なんてオプションはjdkが弾く。orz)

-(*1) 0.5になかったら ''n'' としてある


Last-modified: 2011-12-07 00:09:56