How do I change a project's id in SBT 1.0? : <p>I have a bunch of SBT 0.13 project definitions that look like this:</p>

<pre><code>lazy val coreBase = crossProject.crossType(CrossType.Pure).in(file("core"))
  .settings(...)
  .jvmConfigure(_.copy(id = "core"))
  .jsConfigure(_.copy(id = "coreJS"))

lazy val core = coreBase.jvm
lazy val coreJS = coreBase.js
</code></pre>

<p>(Mostly because I'm resentful about having to maintain Scala.js builds and don't want to have to type the <code>JVM</code> suffix every time I'm changing projects, etc.)</p>

<p>This doesn't compile in SBT 1.0 because <code>Project</code> doesn't have a <code>copy</code> method now.</p>

<p>Okay, let's check <a href="http://www.scala-sbt.org/1.0/docs/Migrating-from-sbt-013x.html" rel="noreferrer">the migration guide</a>.</p>

<blockquote>
  <p>Many of the case classes are replaced with pseudo case classes generated using Contraband. Migrate <code>.copy(foo = xxx)</code> to <code>withFoo(xxx)</code>.</p>
</blockquote>

<p>Cool, let's try it.</p>

<pre><code>build.sbt:100: error: value withId is not a member of sbt.Project
  .jvmConfigure(_.withId("core"))
                  ^
</code></pre>

<p>So I <a href="https://gitter.im/sbt/sbt?at=59b5b846210ac2692015db46" rel="noreferrer">asked on Gitter</a> and got crickets.</p>

<p>The links for the 1.0 API docs actually point to something now, which is nice, but they're not very helpful in <a href="http://www.scala-sbt.org/1.0.1/api/sbt/Project.html" rel="noreferrer">this case</a>, and trying to read the SBT source gives me a headache. I'm not in a rush to update to 1.0, but I'm going to have to at some point, I guess, and maybe some helpful person will have answered this by then.</p>
