mvn 打包_Spark源码打包编译的过程
前言
上篇文章介紹了下 安裝sbt環(huán)境 啟動(dòng)scala項(xiàng)目
安裝SBT環(huán)境運(yùn)行Scala項(xiàng)目
為什么要弄這個(gè) 因?yàn)槲冶緛?lái)是想對(duì)spark源碼編譯部署
spark是用scala語(yǔ)言編譯的
spark源碼
https://gitee.com/pingfanrenbiji/sparkspark提供的編譯方式
編譯的前提是將所有的依賴包都下載下來(lái)
而資源包管理方式有maven、graddle、sbt等
maven方式
將maven資源庫(kù)修改為阿里云資源庫(kù)
配置方式
方式1
方式2
aliyunhttps://maven.aliyun.com/repository/publictruefalse如果你只是配置了repositories,那么你會(huì)發(fā)現(xiàn)在mvn在下載依賴的時(shí)候,一部分從阿里云下載,一部分還是從默認(rèn)的倉(cāng)庫(kù)(https://repo.maven.apache.org )下載
只有項(xiàng)目本身的依賴,走了aliyun這個(gè)repository,maven命令需要的插件(比如clean、install都是maven的插件),走的還是默認(rèn)的repository
方式3
在maven setting文件中
???nexus-aliyun??central????Nexus?aliyun??http://maven.aliyun.com/nexus/content/groups/public??maven編譯打包
mvn?-DskipTests?clean?packagesbt方式
這樣下載依賴包的速度超級(jí)慢
原因是從https://repo1.maven.org/maven2/這個(gè)國(guó)外的資源庫(kù)網(wǎng)站下載的
那么類似于maven 準(zhǔn)備換成國(guó)內(nèi)的資源庫(kù)
國(guó)內(nèi)資源庫(kù)配置方法
上面文章介紹的是配置的華為的國(guó)內(nèi)資源庫(kù)
這里配置下阿里的國(guó)內(nèi)資源庫(kù)
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]
檢驗(yàn)配置的國(guó)內(nèi)資源庫(kù)是否生效
mkdir?testcd?test
sbt
show?fullResolvers
可以看到 配置的阿里云資源庫(kù) 已經(jīng)生效了
既然sbt資源庫(kù)下載已經(jīng)換成了國(guó)內(nèi)的資源庫(kù)了
那么試試吧
咦!怎么還是repo1.maven.org
接下來(lái)說一下 我努力掙扎的過程 反正結(jié)果以失敗而告終 最后先放棄 ?
去掉sbt默認(rèn)從repo1.maven.org下載的配置
第一次嘗試
我是用的=直接將默認(rèn)的resolvers直接替換掉
而不是用+= 默認(rèn)加新增的這個(gè)
但實(shí)際效果不行
第二次嘗試
我直接在spark源碼中全局搜索 repo1.maven.org 沒有找到
那么我就想:通過sbt 下載資源庫(kù) 那么應(yīng)該在sbt源碼中配置的
目的:下載sbt源碼 把所有的repo1.maven.org換成阿里云https://maven.aliyun.com/repository/public 然后重新打包
下載sbt源碼
https://gitee.com/pingfanrenbiji/sbt.git替換repo1.maven.org
執(zhí)行打包
mkdir?sbt-modulescd?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
這個(gè)腳本的內(nèi)容
需要sbt命令
我瞬間凌亂了(因?yàn)槲业臒o(wú)知)
心理活動(dòng):我的目的是下載sbt源碼 然后打包生成可執(zhí)行文件 sbt
但現(xiàn)在我打包 卻需要sbt這個(gè)可執(zhí)行文件。
我知道 我暫時(shí)搞不清楚這個(gè)問題的原因了 所以先準(zhǔn)備下sbt環(huán)境 執(zhí)行這個(gè)腳本 看看結(jié)果如何吧
- sbt環(huán)境
a、上篇文章也介紹了一種方式 就是直接下載sbt資源包 然后配置環(huán)境變量
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環(huán)境 再執(zhí)行sbt-allsources.sh這個(gè)腳本
瞬間吐血~(怎么還是這個(gè)資源庫(kù) 我不是已經(jīng)通過修改源碼的方式去掉了嘛)
暫時(shí)先放棄 因?yàn)檫@塊工作上沒有要求 是我自己想學(xué)習(xí)scala研究的
后記
進(jìn)入一個(gè)未知的領(lǐng)域 在有老師指導(dǎo)的情況下 肯定會(huì)事半功倍 但往往都沒有老師來(lái)指導(dǎo) 那只能靠自學(xué)
自學(xué)雖然會(huì)磕磕絆絆 遇到很多挫折但學(xué)會(huì)了之后 你就會(huì)破繭成蝶
朋友們 共勉吧!
總結(jié)
以上是生活随笔為你收集整理的mvn 打包_Spark源码打包编译的过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跟着杨中科学习asp.net之dom
- 下一篇: 百度个性化瓦片地图下载