2016-12-22 8 views
1

この問題は私の問題sbt-scapegoatと関連していますが、このことを世界的に理解したいと思います。ThisBuildはプラグイン設定で無視されました。

したがって、sbt-scapegoatは、設定scapegoatVersionと設定scapegoatを定義します。短くて完全なソースコードはavailible hereです。

私はscapegoatVersion in ThisBuild := "1.3.0"を設定すると、それは無視されます。私はそれがscapegoatVersion := "1.0.0"autoImportオブジェクトからすべてのプロジェクトのために輸入され、このような設定がscapegoatVersion in ThisBuildよりも正確ですので、それが優先されます、そうです

> scapegoat:scapegoatVersion 
[info] frontend/scapegoat:scapegoatVersion 
[info] 1.0.0 
[info] backend/scapegoat:scapegoatVersion 
[info] 1.0.0 
[info] {.}/scapegoat:scapegoatVersion 
[info] 1.3.0 

理解しています。

私の質問は:ThisBuildまたはGlobalでグローバルオーバーライドを許可するためにプラグインでそのようなデフォルト値をどのように定義するかです。

@edit: 私はversion設定は私Defaults.scala:==代わりの:=を使用して定義されていることを発見しました。これは私が探しているトリックですか?残念ながらそれは文書化されておらず、さらにsbtパッケージにはプライベートです。

答えて

0

scapegoatVersionThisBuildを適用すると、「親プロジェクト」({.}とも呼ばれます)にのみ設定されていると思います。

貼り付けたログから、デフォルトのscapegoatVersionが適用されるサブモジュールが2つあるようです。

いくつかのcommonSettings変数でバージョンを定義してサブモジュールに適用しようとしましたか?

+0

ThisBuildを使用することで、私が避けたいと思っていることは、すべてのモジュールで指定する必要はありません。 – Krever

+0

あなたが試してみることのできるものは、 'scapegoatVersion in Global:=" 1.3.0 "'です。 –

関連する問題