如何将scala编译成可运行的jar文件
我没有找到在Linux中编译scala的好方法,所以我尝试了以下命令如何将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
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代码的教程?我以前从未用过它。谢谢