精华内容
下载资源
问答
  • 使用IDEA编译scala源码

    千次阅读 2017-06-08 19:24:05
    使用IDEA编译scala源码

    Scala源码导入IDEA步骤:

    一、jdk

    1、 下载jdk版本http://www.cnblogs.com/zlslch/p/5658383.html并安装

    2、  配置jdk环境变量

    默认的环境变量在“系统变量”中,设置3属性JAVA_HOME、CLASSPATH、Path,若已存在则点击“编辑”,不存在则点击“新建”;

    新建JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径。此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);

    Path变量:

    在变量值最后输入;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

    新建CLASSPATH 变量.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar检验是否配置成功 运行cmd输入java -version 

    二、Scala

    1、  Scala下载2.11.11版本并安装

    2、  配置scala环境变量

    系统变量中新增SCALA_HOME变量,值是自己的安装位置,然后单击确定,编辑Path变量,在后面追加如下配置:

    ;%SCALA_HOME%\bin;%SCALA_HOME%\jre\bin

    Scala配置完毕,然后检验配置是否成功

    运行cmd,输入scala -version可以正常输出版本号:

    scala就全部配置成功了!

    测试一个简单的Scala语句,输入:scala –e"println(\"HelloScalaCXL!\")"执行,可以看到输出了HelloScalaCXL!

    三、IntelliJ IDEA

    1、 下载并安装IntelliJ IDEACommunity版本http://www.jetbrains.com/idea/download/

    我们Windows7下安装IntelliJ IDEA2017.1.2 for Windows(.exe)

    2、 安装IntelliJ IDEA IDEA2017.1.2 forWindows(.exe)

    3、 补安装scala插件

    自动下载scala插件了,在plugins中下载scala大约45M,安装后重启后即可完成。


    展开全文
  • 笔试:Scala编译时语言集成查询
  • Scala.js 是一个将 Scala 语言编译成 JavaScript 的工具,可以让你直接在浏览器上使用 Scala 编写程序。 这是 Scala.js 的存储库,Scala 到 JavaScript 的编译器。 报告问题 开发人员文档 贡献指南 许可证 Scala....
  • Win10 下 Idea 使用 SBT 方式编译 Scala 源码

    sbtconfig.txt

    Set the java args to high
    
    -Xmx512M
    
    -XX:MaxPermSize=256m
    
    -XX:ReservedCodeCacheSize=128m
    
    # Set the extra SBT options
    
    -Dsbt.log.format=true
    
    -Dsbt.ivy.home=C:\soft\sbt\.ivy2
    -Dsbt.global.base=C:\soft\sbt\.sbt
    -Dsbt.boot.directory=C:\Users\answer\.sbt\boot
    -Dsbt.repository.config=C:\Users\answer\.sbt\repo.properties
    -Dsbt.repository.secure=false
    

    路径: %SBT_HOME%\conf\sbtconfig.txt
     

    repo.properties

    [repositories]
      local
      aliyun: http://maven.aliyun.com/nexus/content/groups/public/
      typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
      sonatype-oss-releases
      maven-central
      sonatype-oss-snapshots
    

    路径: sbtconfig.txt -> Dsbt.repository.config 属性设置的值
     

    Idea 配置

    1. Settings -> Build, Execution, Deployment -> Build Tools -> SBT

      • JVM Options -> VM parameters -> -Xmx512M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m
      • Launcher -> C:\soft\sbt\bin\sbt-launch.jar
    2. Ctrl + Shift + Alt + s(Project Structure) -> Modules

    SBT 下载的缓存 jar 包路径: C:\Users\answer.ivy2\cache
     

    SBT 命令

    # 查看版本号
    sbt sbtVersion
    # 清理环境
    sbt clean
    # 编译
    sbt compile
    # 打包
    sbt package
    # 打包
    sbt assembly
    
    # 先执行 sbt 进行 sbt 命令行, 在执行对应的命令 sbtVersion | clean | compile | package | assembly
    

     

    SBT编译 java 报错:编码GBK的不可映射字符

    javacOptions ++= Seq("-encoding", "UTF-8")
    // javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-encoding", "UTF-8")
    

     

    % 和 %% 区别

    libraryDependencies += "junit" % "junit" % "4.12"
    	junit.junit;4.12
    libraryDependencies += "org.scalaj" %% "scalaj-http" % "2.3.0"
    	org.scalaj#scalaj-http_${scalaVersion};2.3.0
    
    # 打包时此 jar 包不需要打进 jar 包中, 加 provided
    libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.3" % "provided",
    
    • %%:自动给库包的报名结尾加上Scala的版本号
    • %: 只用于分割 groupId 与 artifactId

     

    Reference

    展开全文
  • win10下idea使用sbt方式编译scala源码 虽然集群使用Linux,Ubuntu的桌面版也有非常好的体验感受,但是windows下写码编译打包成jar文件然后再提交到集群运行也是不错的,故本文记录win10下如何搭建环境 准备工作 ...

    win10下idea使用sbt方式编译scala源码

    虽然集群使用Linux,Ubuntu的桌面版也有非常好的体验感受,但是windows下写码编译打包成jar文件然后再提交到集群运行也是不错的,故本文记录win10下如何搭建环境

    准备工作

    idea官网下载 https://www.jetbrains.com/idea/

    sbt官网下载 https://www.scala-sbt.org/download.html

    一些配置

    打开idea,右上角File->Settings
    找到Plugins(插件),选择安装Jetbrains的插件
    安装idea插件按钮.png

    在搜索框搜索Scala什么版本无所谓,可能就是为了代码高亮并且有智能提示和联想。因为在之后sbt编译的配置中不一定使用这个版本。
    下载Scala插件.png

    插件下载完成之后会提示restart idea,那就restart咯~

    新建一个Project,选择sbt

    新建项目.png

    安装环境需要java
    jdk-sbt-scala.png

    打开Settings,找到Build Tools,进行对sbt的一些自定义

    可以使用在官网下载的sbt-1.1.6.zip,解压,解压后的文件路径请添加到环境变量

    然后如下图,Launcher选择Custom,选择刚刚解压的文件中sbt/bin/sbt-launch.jar

    配置sbt.png

    如果能够用Google的小伙伴这一步无所谓,不能用就换源,可以换成阿里的~
    找到解压sbt的目录,进入conf文件夹,新建文本文档改名为repo.properties

    [repositories]
      local
      aliyun: http://maven.aliyun.com/nexus/content/groups/public/
      typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
      sonatype-oss-releases
      maven-central
      sonatype-oss-snapshots
    

    完成之后,切换至Terminal

    sbt有许多命令

    sbt clean
    
    sbt compile
    
    sbt package
    
    sbt assembly
    
    ···
    
    

    我习惯使用package命令,将scala编译后生成的内容打成jar包,提交到集群运行
    到此为止,可以键入sbt sbtVersion查看sbt的版本,这个过程将陷入漫长的等待。
    第一次会比较慢,可以去喝杯咖啡或者开一波黑,之后就会比较快了。

    键入 sbt sbtVersion 的运行结果如果是这样就表示成了!

    D:\IDEAProjects\SparkSample>sbt sbtVersion
    Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
    [info] Loading settings from idea.sbt ...
    [info] Loading global plugins from C:\Users\zhongfuze\.sbt\1.0\plugins
    [info] Loading settings from assembly.sbt ...
    [info] Loading project definition from D:\IDEAProjects\SparkSample\project
    [info] Loading settings from build.sbt ...
    [info] Set current project to SparkSample (in build file:/D:/IDEAProjects/SparkSample/)
    [info] 1.1.6
    

    src/main/scala里新建HelloScala.scala

    object HelloScala {
      def main(args: Array[String]): Unit = {
        println("Hello Scala!")
      }
    }
    

    键入 sbt package 的运行结果如果是这样就表示成了!
    生成的jar包 在根目录/target/scala-2.11/xxxxx.jar

    D:\IDEAProjects\SparkSample>sbt package
    Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
    [info] Loading settings from idea.sbt ...
    [info] Loading global plugins from C:\Users\zhongfuze\.sbt\1.0\plugins
    [info] Loading settings from assembly.sbt ...
    [info] Loading project definition from D:\IDEAProjects\SparkSample\project
    [info] Loading settings from build.sbt ...
    [info] Set current project to SparkSample (in build file:/D:/IDEAProjects/SparkSample/)
    [info] Compiling 1 Scala source to D:\IDEAProjects\SparkSample\target\scala-2.11\classes ...
    [info] Done compiling.
    [info] Packaging D:\IDEAProjects\SparkSample\target\scala-2.11\sparksample_2.11-1.0.jar ...
    [info] Done packaging.
    [success] Total time: 4 s, completed 2018-7-24 16:12:19
    
    

    分割线


    到这里为止只是能够能打包而已,但是coding的时候是需要各种各样的配置的呢
    而且为了便于维护各种各样的依赖jar,properties,config,并且有时需要决定某些jar文件需要被打包,有的jar文件集群里已经存在了,不需要打包,要满足这种需求,就使用sbt assembly命令

    在项目根目录/project下,与build.properties的同级目录
    新建assembly.sbt,内容如下

    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.7")
    

    Note:sbt-assembly的版本取决于sbt的版本,不同的版本区间版本号不一样的!!!

    assembly-sbt.png

    接着找到根目录下build.sbt
    这里可以自定义许多内容,添加依赖等等
    更具体的用法请参考github-sbt-assembly
    https://github.com/sbt/sbt-assembly

    name := "SparkSample"
    
    version := "1.0"
    
    organization := "com.zhong.PRM"
    
    scalaVersion := "2.11.8"
    
    assemblyJarName in assembly := "PRM.jar"
    
    test in assembly := {}
    
    assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)
    
    assemblyMergeStrategy in assembly := {
      case PathList("javax", "servlet", xs@_*) => MergeStrategy.first
      case PathList(ps@_*) if ps.last endsWith ".class" => MergeStrategy.first
      case PathList(ps@_*) if ps.last endsWith ".xml" => MergeStrategy.first
      case PathList(ps@_*) if ps.last endsWith ".properties" => MergeStrategy.first
      case "application.conf" => MergeStrategy.concat
      case "unwanted.txt" => MergeStrategy.discard
      case x =>
        val oldStrategy = (assemblyMergeStrategy in assembly).value
        oldStrategy(x)
    }
    
    libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0" % "provided"
    

    ####排除jar包
    provided 表示打包的时候可以不包含这个jar包
    sbt-assembly是根据项目配置的libraryDependencies依赖进行打包的,不需要打包的依赖可以设置”provided”进行排除

    [build.sbt]
    libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0" % "provided"
    

    ####排除scala库的jar包
    在项目根目录下创建assembly.sbt文件并添加以下配置(注:sbt-assembly相关的配置,可以配置在项目根目录/build.sbt中,也可以在项目根目录下的assembly.sbt文件中):

    [assembly.sbt]
    assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)
    

    ####明确排除某一指定jar包

    [assembly.sbt]
    assemblyExcludedJars in assembly := {
      val cp = (fullClasspath in assembly).value
      cp filter {_.data.getName == “compile-0.1.0.jar”}
    }
    

    ####多个文件共享相同的相对路径

    如果多个文件共享相同的相对路径(例如,多个依赖项JAR中名为application.conf的资源),则默认策略是验证所有候选项具有相同的内容,否则出错。可以使用以下内置策略之一或编写自定义策略在每个路径的基础上配置此行为:

    MergeStrategy.deduplicate是上面描述的默认值
    MergeStrategy.first以类路径顺序选择第一个匹配文件
    MergeStrategy.last选择最后一个
    MergeStrategy.singleOrError在冲突时出现错误消息
    MergeStrategy.concat简单地连接所有匹配的文件并包含结果
    MergeStrategy.filterDistinctLines也会连接,但在此过程中会遗漏重复项
    MergeStrategy.rename重命名源自jar文件的文件
    MergeStrategy.discard只是丢弃匹配的文件
    路径名称到合并策略的映射是通过设置assemblyMergeStrategy完成的,可以按如下方式扩充
    
    assemblyMergeStrategy in assembly := {
      case PathList("javax", "servlet", xs @ _*)         => MergeStrategy.first
      case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
      case "application.conf"                            => MergeStrategy.concat
      case "unwanted.txt"                                => MergeStrategy.discard
      case x =>
        val oldStrategy = (assemblyMergeStrategy in assembly).value
        oldStrategy(x)
    }
    
    

    放一些配置文件做备忘

    [plugins.sbt]
    logLevel := Level.Warn
    
    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3")
    
    [build.sbt]
    
    name := "lanke"
    
    version := "1.0"
    
    scalaVersion := "2.11.8"
    
    assemblyJarName in assembly := "lanke.jar"
    
    test in assembly := {}
    
    assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)
    
    assemblyMergeStrategy in assembly := {
      case PathList("javax", "servlet", xs@_*) => MergeStrategy.first
      case PathList(ps@_*) if ps.last endsWith ".class" => MergeStrategy.first
      case PathList(ps@_*) if ps.last endsWith ".xml" => MergeStrategy.first
      case PathList(ps@_*) if ps.last endsWith ".properties" => MergeStrategy.first
      case "application.conf" => MergeStrategy.concat
      case "unwanted.txt" => MergeStrategy.discard
      case x =>
        val oldStrategy = (assemblyMergeStrategy in assembly).value
        oldStrategy(x)
    }
    
    resolvers ++= Seq(
      "kompics" at "http://kompics.sics.se/maven/repository/"
    )
    
    javacOptions ++= Seq("-encoding", "UTF-8", "-source", "1.7", "-target", "1.7")
    
    resolvers ++= Seq(
      "libs-releases" at "http://artifactory.jd.com/libs-releases",
      "libs-snapshots" at "http://artifactory.jd.com/libs-snapshots",
      "plugins-releases" at "http://artifactory.jd.com/plugins-releases",
      "plugins-snapshots" at "http://artifactory.jd.com//plugins-snapshots"
    )
    
    libraryDependencies ++= Seq(
      "org.apache.spark" % "spark-core_2.11" % "2.3.0" % "provided",
      "org.apache.spark" % "spark-sql_2.11" % "2.3.0" % "provided",
      "org.apache.spark" % "spark-streaming_2.11" % "2.3.0" % "provided",
      "org.apache.spark" % "spark-hive_2.11" % "2.3.0" % "provided",
      "org.apache.spark" % "spark-repl_2.11" % "2.3.0" % "provided",
      "org.apache.spark" % "spark-tags_2.11" % "2.3.0" % "provided"
    )
    
    libraryDependencies += "com.yammer.metrics" % "metrics-core" % "2.2.0"
    
    libraryDependencies += "com.typesafe" % "config" % "1.2.1"
    
    libraryDependencies += "net.liftweb" % "lift-json_2.11" % "3.0"
    
    libraryDependencies += "com.huaban" % "jieba-analysis" % "1.0.2"
    
    resolvers += "Sonatype OSS Releases" at "http://oss.sonatype.org/content/repositories/releases/"
    
    libraryDependencies += "com.thesamet" %% "kdtree" % "1.0.4"
    
    libraryDependencies += "com.soundcloud" % "cosine-lsh-join-spark_2.10" % "1.0.1"
    
    libraryDependencies += "org.tensorflow" %% "spark-tensorflow-connector" % "1.6.0"
    
    libraryDependencies += "org.scalaj" %% "scalaj-http" % "2.4.0"
    
    
    [tools/sbt/conf repo.properties]
    [repositories]
      local
      my-ivy-proxy-releases: http://artifactory.jd.com/ivy-release/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
      my-maven-proxy-releases: http://artifactory.jd.com/libs-releases/
    
    [respositories]
    [repositories]
      local
      aliyun: http://maven.aliyun.com/nexus/content/groups/public/
      typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
      sonatype-oss-releases
      maven-central
      sonatype-oss-snapshots
    
    展开全文
  • idea scala 源码关联

    千次阅读 2019-05-06 19:54:53
    :http://www.scala-lang.org/download/all.html; 选择需要的版本点击打开;2-11-8 在新打开的网页下方找到源代码下载项: 在intellij idea设置指向源代码 在intellij中打开File –> Project Structure 中...

    下载源代码

    点击这个链接 
    :http://www.scala-lang.org/download/all.html; 
    选择需要的版本点击打开;2-11-8 
    在新打开的网页下方找到源代码下载项: 


     

    在intellij idea设置指向源代码
    在intellij中打开File –> Project Structure 中关联

    或者在代码右上角的Attach Sources 进行关联

     

    展开全文
  • scala代码 object Hello { def main(args: Array[String]): Unit = { println("hello world") } } java代码 import scala.Predef$; public final class Hello { public static void main(String[] args) {...
  • Spark源码编译

    千次阅读 2020-01-14 07:17:46
    Spark源码编译 当前环境 System: CentOS Linux release 7.6.1810 (Core) JDK: java version “1.8.0_231” (HotSpot) Sacla: Scala-2.11.12 Maven: Apache Maven 3.6.3 Spark: spark-2.4.4 官方源码编译文档: ...
  • 环境准备 1.下载下面需要的软件 maven ...scala ...scala-2.12.8.tgz ...spark编译包 spark-2.4.3.tgz 2.在hadoop用户下创建目录,并上传这些软件 [hadoop@hadoop001 ~]$ mkdir app s...
  • 在pom.xml里面的build中源文件的目录设置...src.main.scala</sourceDirectory> <testSourceDirectory>src.test.scala</testSourceDirectory>之前写的目录都是src/main/sc...
  • Blink 源码编译

    千次阅读 2019-06-25 16:23:48
    参考:... 帮助文档:http://fetching118.com/blink_doc/quickstart/scala_shell_quickstart.html 1、 从GitHub 官网下载Blink源码 https://codeload.github.com/apache/flink/zip/blink 2...
  • 目录源码类`scala底层的编译机制`反编译class文件得到的demo01_test反编译class文件得到的demo01_test$反编译class文件得到的Worker 源码类 package com.xcu.chapter06 object demo01_test { // 源码 def main...
  • 我在IDEA中学习运行Spark的样例程序WordCount时,想看下RDD的源码, 结果跳转过去是RDD.class,而视频教程里跳转过去是RDD.scala, 明明maven的依赖配置一模一样, 而且代码里import路径也是完全相同的, import ...
  • flink1.10.1源码编译

    2020-08-27 22:43:57
    记录一下鼓捣flink1.10.1源码编译的过程
  • 1.源码包下载   2.进入根目录编译编译的方式有2种 maven mvn clean package \ -DskipTests -Phadoop-2.6 \ -Dhadoop.version=2.6.0-cdh5.12.0 -Pyarn \ -Phive-1.1.0 -Phive-thriftserver ...
  • windows环境编译spark2.4.4源码环境要求环境安装源码下载源码编译注意事项后记 环境要求 操作系统环境:Windows 10(Windows7、Windows8亦可) Java版本: jdk1.8 Scala版本:2.11.0 Maven版本:3.5.4 Git版本:版本...
  • spark源码编译

    2015-12-06 10:22:19
    #spark源码编译–基于spark1.5.2和hadoop2.5.0##环境准备 spark的源码是用scala编写的,这里我们首先需要的是配置scala的环境变量,注意spark1.5.2的在用maven编译源码的时候需要的是mave3.3.3的版本,不要搞错了...
  • 将使用编译为 JavaScript 的文件导入您的应用程序。 安装 ember install:addon ember-cli-scala 用法 app/scala/Robot.scala : package robot import scala . scalajs . js import js . annotation . JSExport @...
  • scala编译常见错误

    2019-12-06 10:44:19
    scala2.10到2.11升级的过程中遇到编译错误Error:scalac: bad option: ‘-make:transitive’ 于是修改 删除其中的 ‘-make:transitive’ 重启idea可以解决 但是每次进pom文件的更新的时候都要进行删除上述文件并...
  • Spark源码编译支持Parquet存储格式

    千次阅读 2019-03-05 18:59:52
    文章目录Spark源码编译Hadoop-Parquet相关jar包下载查找与系统(此处以hive为例)的parquet版本号下载hadoop-parquet相关jar包Spark配置 Spark源码编译 Spark源码编译方式部署Spark时,为了支持Parquet功能,需要在...
  • 只能选择反编译到Java或者选择源码两种选择,在网上找了半天都没有结果,只是有一篇说是到...自己想到了,我可以查看这个刚下载的文件里面是否有.scala相应的源码包,发现真的有,然后我就点击上面的choo.
  • scala-json import json . _ @ accessor case class Book ( name : String , pages : Int , chapters : Seq [ String ]) Book ( " Making JSON Easy in Scala " , 2 , List ( " Getting Started, Fast " , " ...
  • zeppelin0.9源码编译

    2021-07-28 11:11:44
    一、下载zeppelin0.9源码 zeppelin0.9源码下载地址: ...二、编译zeppelin0.9源码 mvn clean package -DskipTests -Pspark-3.0 -Pspark-scala-2.12 -Phadoop3 -Phive2 -Pjdbc-hadoop3 -Pflink-112 -Pweb-angu

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,998
精华内容 3,999
关键字:

scala源码编译