標籤:

用sbt編譯安裝包時,一直卡住不動?


sbt默認使用https來下載,和偉大的牆相衝突(隨機干擾加密鏈接),建議樓主先上VPN.


---------20151128更新--------------

前不久寫了篇比較完整的sbt配置,並且集合play2的

基於play-scala的sbt目錄和ivy倉庫設置

---------20151128更新--------------

經過我不斷的嘗試,給出一些方法.

1.有VPN直接上VPN。

2.sbt和maven類似,也會下載工具插件,默認目錄是用戶目錄下的.ivy2/cache目錄,這相當於maven的倉庫,可以這樣理解。可以去Maven Repository: Search/Browse/Explore搜索需要的sbt插件手到下載並複製到相對應的cache里的目錄。

3.在已有的maven項目或新建個空的maven項目,在pom里添加sbt依然,讓maven去下,最後複製到ivy2倉庫里。

昨天研究了一段時間,發現修改sbt配置文件里的倉庫地址沒有效果,實際要修改sbt-launch.jar中的sbt目錄里的/sbt.boot.properties配置文件,默認配置如下:

[scala]
version: ${sbt.scala.version-auto}

[app]
org: ${sbt.organization-org.scala-sbt}
name: sbt
version: ${sbt.version-read(sbt.version)[0.13.8]}
class: ${sbt.main.class-sbt.xMain}
components: xsbti,extra
cross-versioned: ${sbt.cross.versioned-false}
resources: ${sbt.extraClasspath-}

[repositories]
local
typesafe-ivy-releases: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
maven-central

[boot]
directory: ${sbt.boot.directory-${sbt.global.base-${user.home}/.sbt}/boot/}

[ivy]
ivy-home: ${sbt.ivy.home-${user.home}/.ivy2/}
checksums: ${sbt.checksums-sha1,md5}
override-build-repos: ${sbt.override.build.repos-false}
repository-config: ${sbt.repository.config-${sbt.global.base-${user.home}/.sbt}/repositories}

可以看到ivy-home,這個key值,修改就是了.

應該還可以修改repositories源,修改訪問速度快的(未嘗試哦,可以修改為開源中國的倉庫鏡像,不過開源maven最近訪問不了)

我在想ivy-home,可不可以直接指定本地的maven倉庫,這樣會少下一下通用的jar包?

比如apache-commons包,maven里有,然而ivy2會又下載一遍.

但發現ivy2倉庫里的jar包目錄和maven里的不相同

maven里就不說了,ivy2里會將jar包放在jars目錄下.

目前我知道就怎麼多,如有不對的請指出.誰可以修改倉庫源試試呢- -.

---以下是之前回答的---

我也是這樣,樓主解決了嗎?


使用添加國內源的方式可以解決。

在~/.sbt/下新建或修改repositories文件,添加如下內容:

[repositories]
#本地源
local
#國內源,osChina
osc: http://maven.oschina.net/content/groups/public/
#兼容 Ivy 路徑布局
oschina-ivy:http://maven.oschina.net/content/groups/public/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
#添加國外源備用
typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
sonatype-oss-releases
maven-central
sonatype-oss-snapshots

參考:

加速 SBT 下載依賴庫的速度

問候sbt一千遍之:添加全局鏡像庫


https://github.com/Centaur/repox 某熱心群主的sbt代理,有公服


windows的話可以將以下內容保存為repositories文件添加到$SBT_HOME/conf/下解決

https://gist.github.com/ysrotciv/267f05270a2cfab084c123316c0a82ee


可不可maven來代替 可以越過這個過程。


我回答下吧,我採用的是CoderLeon的方法,我修改了sbt.boot.properties中的typesafe-ivy-releases這個值(非ivy.home),將這個值設置為公司的maven庫地址即可;但是後面在編譯其他庫的時候還是去找https://repo.typesafe.com/...去了,哎,沒搞定啊。


[repositories]

local

aliyun nexus:http://xxxx/nexus/content/groups/public/

typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]

maven-central

sonatype-snapshots: Index of /repositories/snapshots


推薦閱讀:

國外的安卓生態可以和蘋果媲美嗎?
海外有哪些知名的第三方 Android 應用市場?
原生Android系統既然不提供許可權管理,為什麼在GooglePlay中安裝應用前還要提示一下應用的許可權?
有哪些APP榜單查詢工具?可以查詢APP排行榜的,做市場調查要用的。?
如何評價中國版 Google Play?

TAG:Scala | GooglePlay |