title: Why can't I override settings in SBT subproject if it defines a Project value?
body: <p>I have a subproject that defines <code>root</code> like this:</p>
  
  <pre><code>lazy val root = (project in file(".")).enablePlugins(PlayScala)
  </code></pre>
  
  <p>and doesn't define any other settings.</p>
  
  <p>In my main project I reference it like this:</p>
  
  <pre><code>lazy val mylib = (project in file("mylib"))
  lazy val myapp = (project in file("myapp")).dependsOn(mylib)
  </code></pre>
  
  <p>The problem is that referenced this way, <code>mylib</code> is built with Scala 2.10 because it doesn't specify a <code>scalaVersion</code> and 2.10 is SBT's default.</p>
  
  <p>If I try to override any settings like this:</p>
  
  <pre><code>lazy val mylib = (project in file("mylib")).settings(Seq(scalaVersion := "2.11.8"))
  </code></pre>
  
  <p>they get ignored.</p>
  
  <p>However, if I remove the <code>lazy val root = ...</code> from subproject's <code>build.sbt</code> the settings passed from the main build file work as expected. This breaks the subproject's standalone build however since the PlayScala plugin has to be enabled in the main file.</p>
  
  <p>So how can I reference a project like that and override some settings?</p>
  
  <p>I can work around this by changing the settings globally (i.e. <code>scalaVersion in ThisBuild</code>), but I would like to be able to override other things like the project id for instance which is fixed as <code>root</code> in this case.</p>