mvn 打包_Spark源碼打包編譯的過程

前言

上篇文章介紹了下 安裝sbt環境 啟動scala項目

安裝SBT環境運行Scala項目

為什么要弄這個 因為我本來是想對spark源碼編譯部署

spark是用scala語言編譯的

spark源碼

https://gitee.com/pingfanrenbiji/spark

spark提供的編譯方式

編譯的前提是將所有的依賴包都下載下來

而資源包管理方式有maven、graddle、sbt等

maven方式

將maven資源庫修改為阿里云資源庫

配置方式

方式1
9982f5075c35d8208e1674202eb2c360.png
方式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
fe154848c3fa84c05aad01beeeb51ddf.png

sbt方式

638b99fbc678684a4fbbe9e9682a2c95.png

這樣下載依賴包的速度超級慢

原因是從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
b6a8703a028f7009b903b1237033c796.png

可以看到 配置的阿里云資源庫 已經生效了

既然sbt資源庫下載已經換成了國內的資源庫了

那么試試吧

9433c449e3d464ba8e259ecce42c999c.png

咦!怎么還是repo1.maven.org

接下來說一下 我努力掙扎的過程 反正結果以失敗而告終 最后先放棄 ?

去掉sbt默認從repo1.maven.org下載的配置

第一次嘗試

a50a720c25149f262d7bd49af11c2698.png

我是用的=直接將默認的resolvers直接替換掉

而不是用+= 默認加新增的這個

f542ecf5d1ec4e20ea04912321e1fd39.png

但實際效果不行

第二次嘗試

我直接在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

a94fa20741db6d2cc3d4e8b5d222ba1d.png
執行打包
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

這個腳本的內容

eb7aaf9db71b823742a85d82d9b77348.png

需要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這個腳本

312a6b11d09046fdebd8beea7fbef9e5.png

瞬間吐血~(怎么還是這個資源庫 我不是已經通過修改源碼的方式去掉了嘛)

暫時先放棄 因為這塊工作上沒有要求 是我自己想學習scala研究的

后記

  • 進入一個未知的領域 在有老師指導的情況下 肯定會事半功倍 但往往都沒有老師來指導 那只能靠自學

  • 自學雖然會磕磕絆絆 遇到很多挫折但學會了之后 你就會破繭成蝶

朋友們 共勉吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454141.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454141.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454141.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

審計日志功能監控

背景:公司的審計日志經常出現不記錄命令的情況,但是又無法監控到審計功能是否正常。所以我們思路是,每天從CMDB服務器 ssh登錄到每一臺主機。如果審計功能正常,則一定會在auditlog.info文件中有登錄的記錄。如果24小時內這個文件沒…

清華大學《操作系統》(十一):處理機調度

一、處理機調度概念 進程切換(上下文切換):切換CPU的當前任務,從一個進程/線程到另一個,保存當前在PCB/TCB中的執行上下文,讀取下一個的上下文 CPU調度:從就緒隊列中挑選一個進程/線程作為CPU…

通過純css實現圖片居中的多種實現方式

html結構&#xff1a; 1 <div class"demo" style"width: 800px;height: 600px; border:1px solid #ddd"> 2 <img src"default.jpg" width"400" height"300"/> 3 </div> 實現img位于外層div的居中顯示…

GCC 命令行詳解

作者&#xff1a; www.linuxfans.org mozilla 1。gcc包含的c/c編譯器 gcc,cc,c,g,gcc和cc是一樣的&#xff0c;c和g是一樣的&#xff0c;(沒有看太明白前面這半句是什 么意思:))一般c程序就用gcc編譯&#xff0c;c程序就用g編譯 2。gcc的基本用法 gcc test.c這樣將編譯出一個…

Java網絡編程從入門到精通(5):使用InetAddress類的getHostName方法獲得域名

該方法可以得到遠程主機的域名&#xff0c;也可以得到本機名。getHostName方法的定義如下&#xff1a; publicString getHostName() 下面是三種創建InetAddress對象的方式&#xff0c;在這三種方式中&#xff0c;getHostName返回的值是不同的。 1&#xff0e;使用getLocalHost方…

猿輔導python面試_猿輔導面試經歷—個人感受

今天參加了猿輔導的二面&#xff0c;無數槽點&#xff0c;不知道是不是很多公司都是這樣&#xff0c;但是我還是忍不住要逼逼叨。6月10號&#xff0c;我向猿輔導投了簡歷&#xff0c;想做招聘邀約專員這個崗位&#xff0c;然后hr加了我的微信&#xff0c;要了一份簡歷之后通知我…

對稱加密與非對稱加密

&#xff08;一&#xff09;對稱加密&#xff08;Symmetric Cryptography&#xff09; 對稱加密是最快速、最簡單的一種加密方式&#xff0c;加密&#xff08;encryption&#xff09;與解密&#xff08;decryption&#xff09;用的是同樣的密鑰&#xff08;secret key&#xff…

清華大學《操作系統》(十二):臨界區與鎖

多進程并發運行&#xff0c;導致多個進程間有資源共享&#xff0c;比如CPU、內存&#xff0c;因此存在不確定性和不可重現&#xff0c;可能導致多次運行結果不一致。因此操作系統需要利用同步機制在并發執行的同時&#xff0c;保證一些操作是原子操作。 互斥是指一個進程占用了…

gcc生成靜態庫和動態庫

gcc生成靜態庫和動態庫一、庫文件簡介簡單地說&#xff0c;庫&#xff08;Library&#xff09;就是一組已經寫好了的函數和變量、經過編譯代碼&#xff0c;是為了能夠提高開發效率和運行效率而設計的。庫分為靜態庫&#xff08;Static Library&#xff09;和共享庫&#xff08;…

python 流式計算框架_流式計算的三種框架:Storm、Spark和Flink

我們知道&#xff0c;大數據的計算模式主要分為批量計算(batch computing)、流式計算(stream computing)、交互計算(interactive computing)、圖計算(graph computing)等。其中&#xff0c;流式計算和批量計算是兩種主要的大數據計算模式&#xff0c;分別適用于不同的大數據應用…

清華大學《操作系統》(十八):管程于信號量

信號量與管程也是進程間通信的方式。信號量是與鎖在同一層級實現的&#xff0c;是操作系統提供的一種協調共享資源訪問的方法。信號量由操作系統管理&#xff0c;操作系統作為管理者地位是高于進程的。 一、信號量 1、信號量&#xff08;semaphore&#xff09;&#xff1a;是操…

Iptalbes自動封殺暴力破解(Qmail郵件系統)者的IP地址

今天發現Qmail郵件系統的maillog里面有大量的“user not found”信息&#xff0c;通過下面的日志不難發現&#xff0c;是來自同一IP的很多不同的用戶連接Qmail郵件系統認證失敗的信息。黑客試圖通過這種方式來破解Qmail郵件系統的用戶名和密碼&#xff0c;從而來發送大量的垃圾…

安裝Postman

在web和移動端開發時&#xff0c;常常會調用服務器端的restful接口進行數據請求&#xff0c;為了調試&#xff0c;一般會先用工具進行測試&#xff0c;通過測試后才開始在開發中使用。 這里介紹一下如何在chrome瀏覽器利用postman應用進行restful api接口請求測試。 因為&#…

python紅樓夢詞頻統計_用 Python 分析《紅樓夢》(2)-阿里云開發者社區

6 詞頻統計完成分詞以后&#xff0c;詞頻統計就非常簡單了。我們只需要根據分詞結果把片段切分開&#xff0c;去掉長度為一的片段(也就是單字)&#xff0c;然后數一下每一種片段的個數就可以了。這是出現次數排名前 20 的單詞&#xff1a;(括號內為頻數)可以跟之前只統計出現次…

清華大學《操作系統》(二十):死鎖和進程通信

一、死鎖 死鎖&#xff1a;一組阻塞的進程&#xff08;兩個或多個&#xff09;&#xff0c;持有一種資源&#xff0c;等待獲取另一個進程所占有的資源&#xff0c;而導致誰都無法執行。 可重復使用的資源&#xff1a; 在一個時間只能一個進程使用&#xff0c;且不能被刪除。…

python操作redis實例_Java,php,Python連接并操作redis實例

1、Java連接并操作redis在Eclipse里新建一個java project&#xff0c;導入jedis-*.jar包。示例代碼&#xff0c;其他對應的操作類型見&#xff1a;http://my.oschina.net/u/2391658/blog/705069import redis.clients.jedis.Jedis;//示例代碼public class RedisTest {public sta…

java: cannot execute binary file 如果遇到這個錯,一般是操作系統位數出問題了。

[roottestserver usr]# java/jdk1.6.0_12/bin/java-bash: java/jdk1.6.0_12/bin/java: cannot execute binary file后來檢驗&#xff0c;檢查了一段時間&#xff0c;沒有問題&#xff0c;最后有高人提示經驗證&#xff0c;是64位版本移到32位上。本文轉自 jxwpx 51CTO博客&…

div 自適應高度

自適應高度 &#xff0c;設置最小高度&#xff1b;通常情況下&#xff0c;沒有設置高度&#xff0c;div默認自適應高度且無最低高度 1 div{ 2 _height:200px; /* css 注解&#xff1a; 僅IE6設別此屬性&#xff0c;假定最低高度是200px &#xff0c;設置高度200px&#xff0c…

GCC使用詳情

1.前言 GCC編譯器的手冊(GCC MANUAL)的英文版已經非常全面&#xff0c;并且結構也非常完善了&#xff0c;只是一直都沒有中文的版本&#xff0c;我這次閱讀了GCC編譯器的主要內容&#xff0c;對手冊的內容進行了結構性的了解&#xff0c;認為有必要對這次閱讀的內容進行整理&am…

清華大學《操作系統》(二十二):文件系統

文件系統和文件&#xff1a; 文件系統是操作系統中管理持久性數據的子系統&#xff0c;提供數據存儲和訪問功能&#xff0c;組織、檢索、讀寫訪問數據。文件是具有符號名&#xff0c;由字節序列構成的數據項集合&#xff0c;是文件系統的基本數據單位&#xff0c;文件名是文件…