idea导入nodejs插件_sbt 项目导入问题
1 Overview
有用過 sbt 開發(fā)項(xiàng)目的同學(xué)應(yīng)該都有這樣的體會,換個環(huán)境,sbt 經(jīng)常會出現(xiàn)編譯項(xiàng)目出錯的情況,導(dǎo)入 IDEA 又各種報(bào)錯,尤其是在 github 上找到一個 sbt 編譯的項(xiàng)目,想 clone 下來導(dǎo)入 IDEA 中閱讀源碼,跑跑測試用例,debug 進(jìn)去看看實(shí)現(xiàn)原理等等...
總之一句話,sbt 的項(xiàng)目很麻煩,甚至是見到 sbt 的項(xiàng)目就想躲。
2 問題分析
其實(shí)以上的情況是筆者之前經(jīng)常遇到的問題,所以下定決定花點(diǎn)時間解決這個問題。
首先要明白 sbt 其實(shí)是一個 Scala 或者 Java 的一個構(gòu)建工具,使用上的目的和方式其實(shí)跟 Maven 是大相徑庭的,如果你是 Maven 的老司機(jī),要解決 sbt 的問題,應(yīng)該不難。
2.1 sbt 本地問題
其實(shí)只要 sbt 在本地可以對項(xiàng)目進(jìn)行構(gòu)建,就應(yīng)該不存在 IDEA 構(gòu)建不了的問題。所以正常的下載安裝 sbt 的流程應(yīng)該是這樣的。
關(guān)于第三點(diǎn),這里詳細(xì)解釋一下,正常來說 sbt 安裝目錄應(yīng)該是以下這樣的。
? sbt tree . ├── bin │ ├── java9-rt-export.jar │ ├── sbt │ ├── sbt-launch-lib.bash │ ├── sbt-launch.jar │ └── sbt.bat ├── conf │ ├── sbtconfig.txt │ └── sbtopts └── lib└── local-preloaded// 這里不詳細(xì)列出來了跟 Maven 一樣,sbt 有個叫 sbtconfig.txt 的文件,看文件名就知道,這個是 sbt 的配置文件。這個文件初始的樣子是這樣的。
# Set the java args to high-Xmx512M-XX:MaxPermSize=256m-XX:ReservedCodeCacheSize=128m# Set the extra SBT options-Dsbt.log.format=true# 這是我自己添加的 -Dsbt.repository.config=/usr/local/sbt/conf/repositories注意最后一行的參數(shù)是筆者添加的,這里是告訴 sbt,jar 包和 sbt 插件的倉庫地址,這里跟 Maven 也是一樣的,可以給 sbt 添加阿里云鏡像或者其他倉庫。這里看看這個文件的具體內(nèi)容。
[repositories] local maven-central nexus-aliyun:http://maven.aliyun.com/nexus/content/groups/public sbt-plugins-repo: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]以上的倉庫基本夠用(至少筆者是夠用的),如果還需要其他倉庫(公司倉庫),可以自行添加。更多 sbt 配置參數(shù)可以參考官方文檔。這里需要提示,當(dāng)用命令行構(gòu)建項(xiàng)目的時候,上述參數(shù)應(yīng)該是這樣的格式 -Dprop=value,以下是我構(gòu)建項(xiàng)目的時候,輸入命令的一個例子。
sbt -Dsbt.override.build.repos=true -Dsbt.repository.config=/usr/local/sbt/conf/repositories另外還需要注意的一點(diǎn)是,sbt 很多插件沒有發(fā)布到中央倉庫,阿里云鏡像也沒有去同步這些插件倉庫,如果你不配置上述文件的 sbt-plugins-repo 的倉庫地址,基本上就不要指望可以構(gòu)建項(xiàng)目成功了,這個也是 sbt 項(xiàng)目比較坑的一個地方。關(guān)于這些插件倉庫,地址其實(shí)已經(jīng)不是上述文件那樣了,只是他會自動跳轉(zhuǎn)到目前的域名,因?yàn)檫@些倉庫已經(jīng)走商業(yè)化模式了,所以原來的倉庫會有一定的限制,需要留意一下。
2.2 IDEA sbt 的配置問題
如果在本地都能構(gòu)建項(xiàng)目成功,那么在 IDEA 中也應(yīng)該成功,因?yàn)?IDEA 是支持 sbt 項(xiàng)目的。但這里會有一些坑需要注意一下的。
不管是導(dǎo)入還是創(chuàng)建新的 sbt 項(xiàng)目,都應(yīng)該檢查一下 IDEA 的 sbt 配置,這里以筆者的配置為例。
注意需要留意的是 sbt-lauch.jar,如果不配置,那么用的是 IDEA 的內(nèi)置的 sbt,為了更靈活的配置 sbt 的一些設(shè)置,建議還是使用自己下載安裝的 sbt,并且設(shè)置 VM 參數(shù),原理等同于上節(jié)說的命令行模式的參數(shù)。這里就不多做解釋了,官網(wǎng)是有專門介紹的。
2.3 一些測試
為了測試 sbt 的配置是否正確了,建議利用 IDEA 創(chuàng)建和導(dǎo)入一個 sbt 項(xiàng)目,尤其是導(dǎo)入一個開源的 sbt 項(xiàng)目,因?yàn)檫@些項(xiàng)目相對比較復(fù)雜,sbt 的配置文件中包含了大量的插件和 jar 包,如果可以一次構(gòu)建成功,那么 sbt 的配置就應(yīng)該是沒有問題了,以后如果碰到問題了,就仔細(xì)閱讀錯誤日志,其實(shí)最多的問題就是倉庫配置不對,導(dǎo)入插件和 jar 無法下載,最終導(dǎo)入構(gòu)建失敗。
3 Summary
本文主要介紹了 sbt 的配置和踩坑經(jīng)歷,碰到 sbt 構(gòu)建失敗不要輕易放棄,畢竟 sbt 的動態(tài)編譯還是很爽的...
有任何問題歡迎留言私信或者郵件到 runzhliu@163.com。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的idea导入nodejs插件_sbt 项目导入问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三个变量互换值_Python3 教程 变
- 下一篇: pool python 传参数_Pyth