前言
上篇文章介紹了下 安裝sbt環境 啟動scala項目
安裝SBT環境運行Scala項目
為什么要弄這個 因為我本來是想對spark源碼編譯部署
spark是用scala語言編譯的
spark源碼
https://gitee.com/pingfanrenbiji/spark
spark提供的編譯方式
編譯的前提是將所有的依賴包都下載下來
而資源包管理方式有maven、graddle、sbt等
maven方式
將maven資源庫修改為阿里云資源庫
配置方式
方式1

方式2
aliyunhttps://maven.aliyun.com/repository/publictruefalse
如果你只是配置了repositories,那么你會發現在mvn在下載依賴的時候,一部分從阿里云下載,一部分還是從默認的倉庫(https://repo.maven.apache.org )下載
只有項目本身的依賴,走了aliyun這個repository,maven命令需要的插件(比如clean、install都是maven的插件),走的還是默認的repository
方式3
在maven setting文件中
???nexus-aliyun??central????Nexus?aliyun??http://maven.aliyun.com/nexus/content/groups/public??
maven編譯打包
mvn?-DskipTests?clean?package

sbt方式

這樣下載依賴包的速度超級慢
原因是從https://repo1.maven.org/maven2/
這個國外的資源庫網站下載的
那么類似于maven 準備換成國內的資源庫
國內資源庫配置方法
上面文章介紹的是配置的華為的國內資源庫
這里配置下阿里的國內資源庫
vim?~/.sbt/repositories
[repositories]
aliyun-maven-repo:?https://maven.aliyun.com/repository/public
aliyun-nexus:?https://maven.aliyun.com/nexus/content/groups/public/
typesafe:?https://repo.typesafe.com/typesafe/ivy-releases/,?[organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext],?bootOnly
maven-central
sonatype-oss-releases
sonatype-oss-snapshots
ivy-sbt-plugin:?https://dl.bintray.com/sbt/sbt-plugin-releases/,?[organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
檢驗配置的國內資源庫是否生效
mkdir?test
cd?test
sbt
show?fullResolvers

可以看到 配置的阿里云資源庫 已經生效了
既然sbt資源庫下載已經換成了國內的資源庫了
那么試試吧

咦!怎么還是repo1.maven.org
接下來說一下 我努力掙扎的過程 反正結果以失敗而告終 最后先放棄 ?
去掉sbt默認從repo1.maven.org下載的配置
第一次嘗試

我是用的=直接將默認的resolvers直接替換掉
而不是用+= 默認加新增的這個

但實際效果不行
第二次嘗試
我直接在spark源碼中全局搜索 repo1.maven.org
沒有找到
那么我就想:通過sbt 下載資源庫 那么應該在sbt源碼中配置的
目的:下載sbt源碼 把所有的repo1.maven.org
換成阿里云https://maven.aliyun.com/repository/public
然后重新打包
下載sbt源碼
https://gitee.com/pingfanrenbiji/sbt.git
替換repo1.maven.org

執行打包
mkdir?sbt-modules
cd?sbt-modules
for?i?in?sbt?io?librarymanagement?zinc;?do?\
?????git?clone?https://gitee.com/pingfanrenbiji/$i.git?&&?(cd?$i;?git?checkout?-b?develop?origin/develop)
???done
???
cd?sbt
./sbt-allsources.sh
這個腳本的內容

需要sbt命令
我瞬間凌亂了(因為我的無知)
心理活動:我的目的是下載sbt源碼 然后打包生成可執行文件 sbt
但現在我打包 卻需要sbt這個可執行文件。
我知道 我暫時搞不清楚這個問題的原因了 所以先準備下sbt環境 執行這個腳本 看看結果如何吧
- sbt環境
a、上篇文章也介紹了一種方式 就是直接下載sbt資源包 然后配置環境變量
b、這里用另外一種方法
?brew?install?sbt
?
==>?Downloading?https://github.com/sbt/sbt/releases/download/v1.3.13/sbt-1.3.13.
==>?Downloading?from?https://github-production-release-asset-2e65be.s3.amazonaws
########################################################################?100.0%
==>?Caveats
You?can?use?$SBT_OPTS?to?pass?additional?JVM?options?to?sbt.
Project?specific?options?should?be?placed?in?.sbtopts?in?the?root?of?your?project.
Global?settings?should?be?placed?in?/usr/local/etc/sbtopts
==>?Summary
???/usr/local/Cellar/sbt/1.3.13:?9?files,?1.4MB,?built?in?2?seconds
有了sbt環境 再執行sbt-allsources.sh這個腳本

瞬間吐血~(怎么還是這個資源庫 我不是已經通過修改源碼的方式去掉了嘛)
暫時先放棄 因為這塊工作上沒有要求 是我自己想學習scala研究的
后記
進入一個未知的領域 在有老師指導的情況下 肯定會事半功倍 但往往都沒有老師來指導 那只能靠自學
自學雖然會磕磕絆絆 遇到很多挫折但學會了之后 你就會破繭成蝶
朋友們 共勉吧!