scalac の ant タスクの設定に関する以前のスタック オーバーフローの質問を読んでいました: FSC は毎回再コンパイルします
奇妙なことに、-dependencyfile オプションをテストすると、どこにも依存ファイルが生成されていないことがわかります。これを ubuntu の scalac 2.9.1 と ant タスクの公式 2.10.2 jar でテストしています。コマンドライン ユーティリティと ant タスクはどちらも、何も文句を言わずに入力を受け付けているようです (文法的に正しいのでしょうか?)。
この機能を間違った方法で使用していますか?
コマンドラインからの例:
scalac -dependencyfile scala_dependencies *.scala
アリのタスクから
<!-- inside a macro definition -->
<scalac destdir="@{destdir}" deprecation="yes"
force="yes" dependencyfile="scala_dependencies"
addparams="@{addparams}"
scalacdebugging="true">
<!-- src, classpath, patternset and etc -->
</scalac>
更新:
-make:transitive オプションをコマンドラインに追加すると、ファイルが生成されますが、2 回目に実行すると、scalac が単にクラッシュしました。$ scalac -make:transitive -dependencyfile scala_dependencies *.scala 2 つのファイルの再コンパイル警告: 1 つの非推奨警告がありました。-deprecation を指定して再実行すると、詳細エラーが表示されます: java.lang.NullPointerException at scala.tools.nsc.io.Path$.apply(Path.scala:73) at scala.tools.nsc.dependencies.DependencyAnalysis$$anonfun$saveDependencyAnalysis $1.apply(DependencyAnalysis.scala:33) at scala.tools.nsc.dependencies.DependencyAnalysis$$anonfun$saveDependencyAnalysis$1.apply(DependencyAnalysis.scala:33) at scala.tools.nsc.dependencies.Files$FileDependencies$$anonfun $emit$1$2$$anonfun$apply$6.apply(Files.scala:96) で scala.tools.nsc.dependencies.
2.10.2 の場合、コンパイラは次のように警告します: 警告: -make は非推奨です: このオプションは保守されていません。選択的再コンパイルには sbt または IDE を使用します。そして、私はまだ生成ファイルを見つけることができません