Spigot編譯流程

相關(guān)文檔

使用說明

使用gitbash打開當(dāng)前目錄,輸入java -jar BuildTools.jar --rev 1.8,這里的1.8可以替換成其它版本搭儒,如1.10,1.10.2等沪悲。

流程一获洲,下載代碼

  • 克隆git代碼bukkitbukkit 目錄
  • 克隆git代碼craftbukkitcraftbukkit 目錄
  • 克隆git代碼spigotSpigot 目錄
  • 克隆git代碼buildataBuildData 目錄
  • 下載maven工具
  • 從服務(wù)器上查詢命令行中指定的rev對應(yīng)的各代碼庫的分支,如
Attempting to build version: '1.8' use --rev <version> to override
Found version
{
    "name": "1.8",
    "description": "Backport of fixes from 1.8.3",
    "information": "Last build of Spigot 1.8.0. To update please see http://www.spigotmc.org/",
    "warning": "***** Please ensure your BuildTools is at least #35 *****",
    "refs": {
        "BuildData": "0630ea462a82fdbd93018de7d5ec5e9d3b3c732b",
        "Bukkit": "1d2509b99fb10b3bd6f597e63805f85b49d5a055",
        "CraftBukkit": "7019900e276b7c9f6e940debf8529094c7f4da0c",
        "Spigot": "550ebace4b43adc73854d7d5976e1343eba6fb98"
    }
}
  • 將4個文件夾中的代碼更新到指定標(biāo)簽

目錄說明

BuildData

反編譯工具及反編譯minecraft使用的代碼映射殿如。

CraftBukkit

對minecraft server的魔改贡珊,改善性能,并支持插件等涉馁。

Bukkit

Bukkit是服務(wù)器插件編程接口门岔,封裝不同版本minecraft server的細節(jié),統(tǒng)一接口烤送,便于開發(fā)插件固歪。

Spigot目錄

spigot服務(wù)器是一個改良服務(wù)器,在文件夾里是兩個補丁目錄,CraftBukkit-Patches存放對craftBukkit代碼的補丁牢裳,Bukkit-Patches存放對Bukkit代碼的補丁逢防。

流程二,下載minecraft server并反編譯

  • 下載純凈版本minecraft服務(wù)器jar包(此處應(yīng)有梯子)蒲讯。
Attempting to build Minecraft with details: VersionInfo(minecraftVersion=1.8, accessTransforms=bukkit-1.8.at, classMappings=bukkit-1.8-cl.csrg, memberMappings=bukkit-1.8-members.csrg, packageMappings=package.srg, minecraftHash=null, decompileCommand=null, serverUrl=null)
Starting download of https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar

如果下載不下來忘朝,也可以迅雷下載后直接放在work目錄中,如果已經(jīng)存在判帮,則會提示:
Found good Minecraft hash (5b19d1a562a8a7c5f9a787ad96c8148b)
Found good Minecraft hash (5b19d1a562a8a7c5f9a787ad96c8148b)

  • 反編譯代碼
Final mapped jar: work\mapped.8eb82bde.jar does not exist, creating!
Loading mappings
Loading mappings
1 packages, 0 classes, 0 fields, 0 methods
INFO: merging AccessMap net/minecraft/server/CraftingManager/recipes from AccessChange(clear=16, set=0, vis=1) with AccessChange(clear=0, set=0, vis=1)
INFO: merging AccessMap net/minecraft/server/PropertyManager/properties from AccessChange(clear=0, set=0, vis=1) with AccessChange(clear=0, set=0, vis=1)
INFO: merging AccessMap net/minecraft/server/TileEntityBrewingStand/items from AccessChange(clear=0, set=0, vis=1) with AccessChange(clear=0, set=0, vis=1)
INFO: merging AccessMap net/minecraft/server/WorldServer/tracker from AccessChange(clear=16, set=0, vis=1) with AccessChange(clear=0, set=0, vis=1)
INFO: merging AccessMap net/minecraft/server/WorldManager/world from AccessChange(clear=0, set=0, vis=1) with AccessChange(clear=0, set=0, vis=1)
Remapping final jar
  • 將minecraft-server的class文件釋放到work目錄下的decompile-xxxxxxxx目錄的classes子目錄局嘁。
  • 根據(jù)map文件,將釋放的class文件晦墙,反編譯到work目錄下的decompile-xxxxxxxx中悦昵。
  • 將生成的java文件,編譯并生成minecraft-server-1.8-SNAPSHOT.jar到mvn的代碼倉庫目錄
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ standalone-pom ---
[INFO] Installing D:\mc\spigotmc_build\work\mapped.8eb82bde.jar to D:\repo\repository\org\spigotmc\minecraft-server\1.8-SNAPSHOT\minecraft-server-1.8-SNAPSHOT.jar
[INFO] Installing C:\Users\terry\AppData\Local\Temp\mvninstall1056450265315348368.pom to D:\repo\repository\org\spigotmc\minecraft-server\1.8-SNAPSHOT\minecraft-server-1.8-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
extract ....*.class
Decomiling ***.java
Applying CraftBukkit Patches
  • 應(yīng)用代碼補丁
Applying CraftBukkit Patches
Patching with BiomeDecorator.patch
Patching with BiomeTheEndDecorator.patch
  • 并各種文件夾合并,將Bukkit和CraftBukkit的代碼都checkout一份到Spigot目錄晌畅。

流程三但指,編譯代碼

  • 編譯Bukkit和CraftBukkit,并且都輸出到Maven本地倉庫。
  • 將Bukkit和CraftBukkit的代碼check out到Spigot中的Spigot-API和Spigot-Server抗楔,然后分別打上補丁(Bukkit-Patches和CraftBukkit-Patches)棋凳。
Rebuilding Forked projects.... 
From file:///D:\mc\spigotmc_build\Bukkit
 * [new branch]      spigot     -> origin/spigot
HEAD is now at 1d2509b Revert finite checks in locations. Fixes SPIGOT-628 and others
Cloning into 'Spigot-API'...
done.
Resetting Spigot-API to Bukkit...

...

HEAD is now at 36052f0 CraftBukkit $ Fri Aug 04 14:37:11 CST 2017
Cloning into 'Spigot-Server'...
done.
Resetting Spigot-Server to CraftBukkit...
  • 編譯輸出 craftbukkit-1.8.jar 和 spigot-1.8.jar 等
Success! Everything compiled successfully. Copying final .jar files now.
Copying craftbukkit-1.8-R0.1-SNAPSHOT-remapped.jar to D:\mc\spigotmc_build\.
  - Saved as craftbukkit-1.8.jar
Copying craftbukkit-1.8-R0.1-SNAPSHOT.jar to D:\mc\spigotmc_build\.
  - Saved as craftbukkit-1.8.jar
Copying spigot-1.8-R0.1-SNAPSHOT-remapped.jar to D:\mc\spigotmc_build\.
  - Saved as spigot-1.8.jar
Copying spigot-1.8-R0.1-SNAPSHOT.jar to D:\mc\spigotmc_build\.
  - Saved as spigot-1.8.jar
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市连躏,隨后出現(xiàn)的幾起案子剩岳,更是在濱河造成了極大的恐慌,老刑警劉巖入热,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拍棕,死亡現(xiàn)場離奇詭異,居然都是意外死亡勺良,警方通過查閱死者的電腦和手機语御,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門盐杂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盯另,“玉大人饰豺,你說我怎么就攤上這事拱层「晦郑” “怎么了粟矿?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵磕道,是天一觀的道長示弓。 經(jīng)常有香客問我讳侨,道長,這世上最難降的妖魔是什么奏属? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任跨跨,我火速辦了婚禮,結(jié)果婚禮上勇婴,老公的妹妹穿的比我還像新娘。我一直安慰自己耕渴,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布橱脸。 她就那樣靜靜地躺著础米,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屁桑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天蘑斧,我揣著相機與錄音,去河邊找鬼艾帐。 笑死乌叶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的柒爸。 我是一名探鬼主播准浴,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼乐横,長吁一口氣:“原來是場噩夢啊……” “哼今野!你這毒婦竟也來了葡公?” 一聲冷哼從身側(cè)響起条霜,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒲凶,沒想到半個月后拆内,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡麸恍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了刻肄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡冰垄,死狀恐怖权她,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隅要,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布步清,位于F島的核電站,受9級特大地震影響欢搜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炒瘟,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一第步、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧廓推,春花似錦、人聲如沸樊展。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽顽频。三九已至太闺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蟀淮,已是汗流浹背最住。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脓魏,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓茂翔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親珊燎。 傳聞我的和親對象是個殘疾皇子遵湖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理延旧,服務(wù)發(fā)現(xiàn)谋国,斷路器垄潮,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評論 25 707
  • 今年的春天已來了近二十天了弯洗,氣溫確暖和得多了。隨著年歲的增長牡整,對身邊的事物似乎不再那么敏感,想要寫一篇作文逃贝,卻不知...
    混吃等死大王閱讀 221評論 0 0
  • 獨處的時候 世界仿佛一下子安靜了 我聽見書架上空鳳在呼吸 聽見遠方行人歡笑的回音 獨處的時候 還是會想起你 想起...
    有些像你閱讀 158評論 0 2