4

新しいPlay2.1プロジェクトを作成するとき、IntellijIdeaはプロジェクト構成ファイルのみのデバッグを要求します。つまり、。/ project / Build.scalaの行であり、他のファイルはありません。

代わりに./app/でデバッグするようにIdeaに指示するにはどうすればよいですか?

私は次のようなアイデアプロジェクトファイルを生成しました: [project-name] $ idea with-sources=yes(Playのコンソールで)。

(Play 2.0以前のバージョンの2.1でこれまでに起こったことを思い出せません)

4

2 に答える 2

3

この問題には2つの原因がありました。1つは「興味深い」、もう1つは愚かです。

興味深い原因:

Play 2.1とSBTはテストをフォークしているようです(したがって、別のプロセスでテストを実行します)。したがって、単体テストコードのブレークポイントはヒットしませんでした。

これを「修正」する1つの方法は、次のconfigsettinigを追加することです。

Keys.fork in Test := false

愚かな原因:

新しいプロジェクトでは、まだ「実際の」ソースコードファイルをコンパイルしていませんでした。したがって、Ideaはこれらの行でブレークポイントをアクティブにすることはありません。しかし、プロジェクト構成のBuild.scalaファイルは、PlayのSBTコンソールを起動したときにコンパイルされたと思うので、IdeaはBuild.scalaのブレークポイントを直接アクティブにしました。—したがって、実際には問題はありませんでした。PlayConsoleを押すだけrunで、ブレークポイントが有効になりました(Playがソースをコンパイルした後)。

于 2013-02-17T07:17:52.107 に答える
0

ポート9999でリモートデバッグを使用してIntellijを実行しています1.〜apatzer> play debug 2.次に、Intellij3でリモート構成を開始します。[playproject]$run==>ブレークポイントのヒットとデバッグに成功しました。

フォークが原因で、どのテストでもブレークポイントに到達できませんでした。例:[playproject] $ test-only com.mydomain.pkg.MyTest==>FAIL別のプロセス。IDEでブレークポイントがヒットしません。

うまくいったことは次のとおりです。

import sbt._
import Keys._
import play.Project._

object MyBuild extends Build {
...
lazy val main = play.Project(appName, appVersion, appDependencies).settings(
  Keys.fork in testOnly := false,
  libraryDependencies ++= deps,
  ...
于 2013-04-16T17:57:17.590 に答える