2011-12-10 13 views
2

Playでスカラドックを実行する方法について、私はちょっと困惑しています!フレームワークプロジェクト。それは説明するための複雑さがたくさんあるようだが、私は成功していない。再生のためのscaladoc! Scalaモジュールを使用したフレームワーク

私は行方不明のチュートリアルがありますか?あなたはそれを合理的にするためにsbtまたはビルドツールを追加する必要がありますか?

+0

をあなたはそれがどのプロジェクトでScaladocを実行するか、またはあなたがあるためプレーの特定の問題を持っていることを意味していないのですか?おそらく、現在プロジェクトをどのように構築しているのか、ドキュメントを生成しているのか、具体的な問題は何かを明確にする必要があると思います。あなたがsbtを使用しているのであれば、それは 'doc'コマンドを実行するだけの問題ですので、かなり簡単です。 –

+0

Playのために問題があります。 2.0より前のバージョンはsbtを使用していないので、すべてを手動でscaladocを実行するように設定する方法がわかりません。 –

+0

Playframework 2.0はSBTを使用してプロジェクトをビルドします。どのバージョンのゲームを使用しましたか?プレイコンソールで 'doc'タスクを実行しようとしましたか? – David

答えて

1

私はうまくいく解決策を考え出しましたが、完璧ではありません。テンプレートのScalaコードを生成するには、アプリケーションを実行する必要があります。次に、以下のコードで 'play scaladoc'を実行します。

追加内容の '再生/フレームワーク/ PYM /演劇/コマンド/ scaladoc.py':Playframework 2.2.0を使用したプロジェクトで

import os, os.path 
import shutil 
import subprocess 

from play.utils import * 

COMMANDS = ['scaladoc', 'sd'] 

HELP = { 
    'scaladoc': 'Generate your application scaladoc' 
} 

def execute(**kargs): 
    command = kargs.get("command") 
    app = kargs.get("app") 
    args = kargs.get("args") 
    play_env = kargs.get("env") 

    app.check() 
    modules = app.modules() 
    if not os.environ.has_key('SCALA_HOME'): 
     scaladoc_path = "scaladoc" 
    else: 
     scaladoc_path = os.path.normpath("%s/bin/scaladoc" % os.environ['SCALA_HOME']) 

    fileList = [] 
    def add_scala_files(app_path): 
     for root, subFolders, files in os.walk(os.path.join(app_path, 'app')): 
      for file in files: 
       if file.endswith(".scala"): 
        fileList.append(os.path.join(root, file)) 
     for root, subFolders, files in os.walk(os.path.join(app_path, 
      'tmp/generated')): 
      for file in files: 
       if file.endswith(".scala"): 
        fileList.append(os.path.join(root, file)) 
    add_scala_files(app.path) 
    for module in modules: 
     add_scala_files(os.path.normpath(module)) 
    outdir = os.path.join(app.path, 'scaladoc') 
    sout = open(os.path.join(app.log_path(), 'scaladoc.log'), 'w') 
    serr = open(os.path.join(app.log_path(), 'scaladoc.err'), 'w') 
    if (os.path.isdir(outdir)): 
     shutil.rmtree(outdir) 
    scaladoc_cmd = [scaladoc_path, '-classpath', app.cp_args(), '-d', outdir] + args + fileList 
    print "Generating scaladoc in " + outdir + "..." 
    subprocess.call(scaladoc_cmd, env=os.environ, stdout=sout, stderr=serr) 
    print "Done! You can open " + os.path.join(outdir, 'overview-tree.html') + " in your browser." 
2

だけでこれを使用するコマンド:

clean 
doc 

ドキュメントの回答は(あなたがきれいにしている場合のみ)iE

メインのScala APIドキュメント.../myproject/target/scala-2.10/api ... このフォルダでindex.htmlを開きます。

あなたはすべてのタスクを検索する場合だけで入力します。

tasks -V 
関連する問題