title: How do I test a change to an sbt plugin? Resolver semantics
body: <p>tl;dr How do I test a change to an sbt plugin (e.g., sbt-native-packager)?</p>
  
  <p>I git clone <code>sbt-native-packager</code>, tweak it, and publishLocal to <code>~/.ivy2/local</code>.</p>
  
  <p>My <strong>MWE</strong> sbt project is like:</p>
  
  <pre><code>./project
  ./project/build.properties
  ./project/plugins.sbt
  ./project/project/build.properties
  ./project/project/build.sbt
  </code></pre>
  
  <p>where </p>
  
  <p>both <code>build.properties</code> files say <code>sbt.version=0.13.15</code> </p>
  
  <p>the <code>project/plugins.sbt</code> says </p>
  
  <pre><code>addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.5")
  </code></pre>
  
  <p>and <code>project/project/build.sbt</code> says </p>
  
  <pre><code>resolvers += Resolver.file("ivy-local", file(sys.props("user.home")) / ".ivy2" / "local")(Resolver.ivyStylePatterns)
  </code></pre>
  
  <p>But no matter how I permute things, <code>sbt update</code> always downloads the remote <code>sbt-native-packager</code> jar into <code>~/.ivy2/cache</code>
  instead of getting same from <code>~/.ivy2/local</code></p>