---
title: 编译
description: "1. 下载sbt-0.13.15到指定目录，并解压（此处以指定“/opt/tools/installed”目录为例）。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/tpdl/kunpengscalacompiler_02_0004.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/tpdl/kunpengscalacompiler_02_0004.html
indexId: 525270826f7d57f7d5b3feb619333cc443207e62c4e7a904f73c04c3ae56e63676
---
# 编译

#### 安装sbt

1. 下载sbt-0.13.15到指定目录，并解压（此处以指定“/opt/tools/installed”目录为例）。
  1 2 3 wget https://github.com/sbt/sbt/releases/download/v0.13.15/sbt-0.13.15.tgz tar -zxf sbt-0.13.15.tgz mv sbt /opt/tools/installed

2. 在当前用户根目录创建.sbt目录，并将repositories文件拷贝到.sbt目录。
  repositories标签定义了sbt编译时使用的Maven仓库顺序。

  1 2 mkdir ~/.sbt cp repositories ~/.sbt

  repositories文件内容如下：

  1 2 3 4 5 6 [repositories] local kunpeng-maven: https://mirrors.huaweicloud.com/kunpeng/maven/ huawei-maven: https://mirrors.huaweicloud.com/repository/maven/ sbt-releases-repo: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] sbt-plugins-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

3. 配置SBT_HOME环境变量。

  a. 打开“/etc/profile”文件。
    1 vi /etc/profile

  b. 按“i”进入编辑模式，在“profile”文件中加入如下内容。
    1 2 export SBT_HOME=/opt/tools/installed/sbt export PATH=${SBT_HOME}/bin:${PATH}

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
4. 使环境变量生效。
  1 source /etc/profile


#### 编译Scala-compiler-2.11.8

1. 编译Scala时依赖jline-2.12.1，请参考《Jline 移植指南（CentOS&openEuler）(https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/tpdl/kunpengjline21x_02_0001.html)》将编译过后的jline-2.12.1.jar替换到“~/.ivy2/cache/jline/jline/jars/”目录。
2. 下载Scala-2.11.8源码。
  1 git clone https://github.com/scala/scala.git

3. 进入源码目录切换到版本分支。
  1 2 3 cd scala git checkout v2.11.8 sed -i "48,48s%)%),\n\ \ \ \ Keys.\`package\`\ := bundle.value%g" project/Osgi.scala

4. 执行编译。
  1 sbt package

  编译完成后，scala-compiler.jar放置于“build-sbt/pack/lib”目录。


#### 编译Scala-compiler-2.11.12

1. 编译Scala时依赖Jline 2.14.3，请参考《Jline 移植指南（CentOS&openEuler）(https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/tpdl/kunpengjline21x_02_0001.html)》将编译过后的jline-2.14.3.jar替换到“~/.ivy2/cache/jline/jline/jars/”目录。
2. 下载Scala 2.11.12源码。
  1 git clone https://github.com/scala/scala.git

3. 进入源码目录切换到版本分支。
  1 2 3 cd scala git checkout v2.11.12 sed -i "50,50s%)%),\n\ \ \ \ Keys.\`package\`\ := bundle.value%g" project/Osgi.scala

4. 执行编译。
  1 sbt package

  编译完成后，scala-compiler.jar放置于“build/pack/lib”目录。


#### 编译Scala-compiler-2.12.7

1. 编译Scala时依赖Jline 2.14.6，请参考《Jline 移植指南（CentOS&openEuler）(https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/tpdl/kunpengjline21x_02_0001.html)》将编译过后的jline-2.14.6.jar替换到“~/.ivy2/cache/jline/jline/jars/”目录。
2. 下载Scala 2.12.7源码。
  1 git clone https://github.com/scala/scala.git

3. 进入源码目录切换到版本分支。
  1 2 cd scala git checkout v2.12.7

4. 修改文件repositories，将文件中的http均改为https。
  1 vi ~/.sbt/repositories

5. 执行编译。
  1 sbt package

  编译完成后，scala-compiler.jar放置于“build/pack/lib”目录。
