Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加scala-compiler.jar作为运行时依赖项_Scala_Executable Jar_Sbt_Proguard_Scalac - Fatal编程技术网

添加scala-compiler.jar作为运行时依赖项

添加scala-compiler.jar作为运行时依赖项,scala,executable-jar,sbt,proguard,scalac,Scala,Executable Jar,Sbt,Proguard,Scalac,我正在使用sbt及其Proguard插件为我的程序创建一个可执行jar。然而,我的程序在运行时依赖scala compiler.jar进行编译。我似乎无法将scala compiler.jar放入我的最终jar中。有一些非常相似的信息,但我不能让它开始工作到结束。有什么建议吗 编辑:这是我得到的最接近的结果: override def proguardOptions = List( "-dontshrink -dontoptimize -dontobfuscate -dontpreverif

我正在使用sbt及其Proguard插件为我的程序创建一个可执行jar。然而,我的程序在运行时依赖scala compiler.jar进行编译。我似乎无法将
scala compiler.jar
放入我的最终jar中。有一些非常相似的信息,但我不能让它开始工作到结束。有什么建议吗

编辑:这是我得到的最接近的结果:

override def proguardOptions = List(
  "-dontshrink -dontoptimize -dontobfuscate -dontpreverify -dontnote " +
  "-ignorewarnings",
  proguardKeepAllScala
)
override def proguardInJars =
  Path.fromFile(scalaLibraryJar) +++
  Path.fromFile(FileUtilities.scalaCompilerJar) +++
  super.proguardInJars
这包括proguard min jar中的编译器jar,但运行它仍然可以得到:

Exception: java.lang.NoClassDefFoundError: scala/tools/nsc/settings/Scala Settings

这是可行的,但对调用
sbt
的位置敏感:

//proguard                                                                    
override def proguardOptions = List(
  "-dontshrink -dontoptimize -dontobfuscate -dontpreverify -dontnote " +
  "-ignorewarnings",
  proguardKeepAllScala
)

val cur =  new File(".").getAbsolutePath
override def proguardInJars =
  Path.fromFile(scalaLibraryJar) +++
  Path.fromFile(
    new File(cur, "project/boot/scala-" + crossScalaVersionString +
             "/lib/scala-compiler.jar")) +++
  super.proguardInJars

我不能使用
FileUtilities.scalaCompiler
Jar,因为它得到的是sbt使用的2.7.7 Jar,而不是跨scala版本编译器。

除非你说出你尝试了什么以及失败的原因,否则没有人会(或应该…)帮助你。我尝试了链接到的页面上的内容。它在运行时因“scala.tools.nsc…..未找到”而失败。具体而言,
异常:java.lang.NoClassDefFoundError:scala/tools/nsc/settings/scala settings