如何将scala编译成可运行的jar文件

如何将scala编译成可运行的jar文件,scala,gradle,Scala,Gradle,我没有找到在Linux中编译scala的好方法,所以我尝试了以下命令 mkdir runnablescala cd runnablescala mkdir -p src/main/scala mkdir -p src/main/resources mkdir -p src/test/scala mkdir -p src/test/resources cd src/main/scala mkdir -p com/johnathanmarksmith/gradle vi com/johnathanm

我没有找到在Linux中编译scala的好方法,所以我尝试了以下命令

mkdir runnablescala
cd runnablescala
mkdir -p src/main/scala
mkdir -p src/main/resources
mkdir -p src/test/scala
mkdir -p src/test/resources
cd src/main/scala
mkdir -p com/johnathanmarksmith/gradle
vi com/johnathanmarksmith/gradle/HelloWorld.scala

package com.johnathanmarksmith.gradle;
 object HelloWorld {
    def main(args: Array[String]) {
      println("Hello, world!")
    }
  }

cd ../../..
vi build.gradle

apply plugin: 'scala' 

 jar { 
        baseName = 'smith' 
        version = '1.0' 
        manifest { 
                     attributes 'Main-Class': 'com.johnathanmarksmith.gradle.HelloWorld' } 
     }
gradle build
生成失败,导致此结果

:compileJava UP-TO-DATE
:compileScala FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileScala'.
> 'compileScala.scalaClasspath' must not be empty

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED
谁能告诉我如何编译scala?谢谢我需要其他的插件吗

除非明确配置了任务的ScalClassPath,否则Scala(base)插件将尝试从任务的类路径推断出它。具体做法如下:

如果在类路径上找到scala库Jar,并且项目至少声明了一个存储库,则相应的scala编译器存储库依赖项将添加到scalaClasspath

否则,任务的执行将失败,并显示一条消息,说明无法推断ScalClassPath

i、 e.您需要添加

dependencies {
  compile 'org.scala-lang:scala-library:2.11.7'
}
build.gradle
。如果您想构建一个独立的jar,请参阅

正如Rex Kerr提到的,如果您没有使用Gradle的具体原因,我会选择SBT进行Scala项目。

:

除非明确配置了任务的ScalClassPath,否则Scala(base)插件将尝试从任务的类路径推断出它。具体做法如下:

如果在类路径上找到scala库Jar,并且项目至少声明了一个存储库,则相应的scala编译器存储库依赖项将添加到scalaClasspath

否则,任务的执行将失败,并显示一条消息,说明无法推断ScalClassPath

i、 e.您需要添加

dependencies {
  compile 'org.scala-lang:scala-library:2.11.7'
}
build.gradle
。如果您想构建一个独立的jar,请参阅


正如Rex Kerr提到的,如果您没有使用Gradle的具体原因,我会选择SBT进行Scala项目。

您是说专门使用Gradle吗?如果是,则应添加渐变标记。如果没有,SBT通常最容易起飞。
scalac
?我擅自更改了标记,因为这是一个Gradle错误,而不是编译器错误。@RexKerr是否有使用sbt编译scala代码的教程?我以前从未用过它。谢谢@Gaviniu-是一个来源。如果您只想编译一个文件,下面就是一个例子。如果你想构建一个jar文件,包含类路径上需要的所有东西(还有一些——这不是为了优化,只是为了方便),那么就搜索汇编插件。你是说专门使用Gradle吗?如果是,则应添加渐变标记。如果没有,SBT通常最容易起飞。
scalac
?我擅自更改了标记,因为这是一个Gradle错误,而不是编译器错误。@RexKerr是否有使用sbt编译scala代码的教程?我以前从未用过它。谢谢@Gaviniu-是一个来源。如果您只想编译一个文件,下面就是一个例子。如果你想构建一个jar文件,包含类路径上所需的一切(然后是一些——这不是为了优化,只是为了方便),搜索汇编插件。有没有使用sbt编译scala代码的教程?我以前从未用过它。谢谢有没有使用sbt编译scala代码的教程?我以前从未用过它。谢谢