私はこのようroot
を定義するサブプロジェクトがあります。SBTサブプロジェクトの設定をプロジェクトの値で定義すると、設定を上書きできないのはなぜですか?
lazy val root = (project in file(".")).enablePlugins(PlayScala)
およびその他の設定を定義していませんが。
私はこのようにそれを参照する私のメインプロジェクトで:
lazy val mylib = (project in file("mylib"))
lazy val myapp = (project in file("myapp")).dependsOn(mylib)
問題は、この方法を参照することがscalaVersion
を指定しないと、2.10がSBTのデフォルトであるため、mylib
はScalaの2.10を使用して構築されていることです。
私はこのような任意の設定を上書きしようとした場合
:それらは無視されますlazy val mylib = (project in file("mylib")).settings(Seq(scalaVersion := "2.11.8"))
。
ただし、サブプロジェクトのbuild.sbt
からlazy val root = ...
を削除すると、メインビルドファイルから渡された設定が正常に機能します。これは、メインファイルでPlayScalaプラグインを有効にする必要があるため、サブプロジェクトのスタンドアロンビルドを中断します。
どうすればそのようなプロジェクトを参照して、いくつかの設定を上書きできますか?
これを回避するには、グローバルに設定を変更する(つまりscalaVersion in ThisBuild
)がありますが、この場合はroot
に固定されているプロジェクトIDなどの他の項目を上書きできるようにしたいと考えています。
の下に表示されていますgithubリポジトリからクローン化されたサブモジュールです(これはアップストリームと互換性があります)。これには、Playプラグインを有効にするためのlazy val root = ...行が含まれています。プロジェクトが定義されていないと正常に動作しますが、設定は上書きできません。< –
あなたが使用しているsbtファイルを共有できますか? – Mysterion