When running a sbt script, this change lets the user on UNIX and
Windows platforms to use native file extensions like none/.sh or
.bat/.cmd. The code copies the file to the sbt boot/hash/src_managed
directory with a .scala extension.
There seems to be an issue with the discovery of auto plugins in an
inner nested class. The error you would get is:
[info] java.lang.ClassNotFoundException: sbttest.Imports.A$
[info] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[info] at java.security.AccessController.doPrivileged(Native Method)
[info] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[info] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[info] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[info] at java.lang.Class.forName0(Native Method)
[info] at java.lang.Class.forName(Class.java:249)
[info] at
sbt.internal.inc.ModuleUtilities$.getObject(ModuleUtilities.scala:16)
[info] at
sbt.internal.inc.ModuleUtilities$.getCheckedObject(ModuleUtilities.scala
:22)
[info] at
sbt.internal.inc.ModuleUtilities$$anonfun$getCheckedObjects$1.apply(Modu
leUtilities.scala:25)
[info] at
sbt.internal.inc.ModuleUtilities$$anonfun$getCheckedObjects$1.apply(Modu
leUtilities.scala:25)
[info] at scala.collection.immutable.Stream.map(Stream.scala:418)
[info] at
sbt.internal.inc.ModuleUtilities$.getCheckedObjects(ModuleUtilities.scal
a:25)
[info] at sbt.PluginDiscovery$.loadModules(PluginDiscovery.scala:138)
[info] at
sbt.PluginDiscovery$.binarySourceModules(PluginDiscovery.scala:132)
[info] at sbt.PluginDiscovery$.discover$1(PluginDiscovery.scala:36)
[info] at sbt.PluginDiscovery$.discoverAll(PluginDiscovery.scala:45)
[info] at sbt.internal.Load$.loadPlugins(Load.scala:856)