我正在dockerizing我的Play!框架應用程序和目前,我的構建需要超過15分鐘才能完成。這個過程的很大一部分,實際上是下載依賴關係,因爲我的構建器沒有高速緩存的概念。我認爲,將我的項目需要的所有依賴項複製到本地文件夾是一個不錯的主意,因此它不必一次又一次地下載所有內容。但問題是,我不知道該怎麼做?我知道SBT有一個功能,可以讓你指定一個本地回購,但我不知道一個功能,允許我將所有內容複製到某個文件夾。將所有SBT依賴項複製到本地文件夾
1
A
回答
3
更新(2015-07-12):
好了,你想是保持所有依賴你想要的文件夾中的內容,你可以試試這個當您運行SBT,
sbt -Dsbt.ivy.home=/your/local/path/.ivy
然後它會保留所有依賴關係文件或下載的任何文件以構建您的應用程序/your/local/path/.ivy/cache
。
如果你想保持他們在你的項目,
sbt -Dsbt.ivy.home=/some/path/to/your-project/.ivy
這些文件會被保存在文件夾/some/path/to/your-project/.ivy/cache
。
順便說一句,碼頭不支持緩存?嗯,你爲什麼不嘗試一些很好的CI服務,如Semaphore CI,並讓它部署你的應用程序到Docker? (我沒有與Semaphore建立任何個人或任何其他連接,這只是我使用的服務,我嘗試過五種不同的CI工具,並且最喜歡那種工具)。
更新(2015-07-12):哦,對不起,你的問題不是關於使用本地回購,而是複製一切到它。
這可能不完全是你問的,但可以解決你的問題。
updateOptions := updateOptions.value.withCachedResolution(true)
注意:這是一個實驗性功能。
詳情:sbt doc - Cached-Resolution
======================================= ========
您可以通過
resolvers += name at location
像
resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
所以對於本地Maven回購,你可以簡單地做
指定庫resolvers += Resolver.mavenLocal
然而,在我的情況下,當我這樣做,它試圖訪問PROJECT_HOME/{user.home}/.m2/repository
這是不正確的。
我想要的是$HOME/.m2/repository
這是maven本地存儲庫的位置。所以我把下面這行放在build.sbt
而不是Resolver.mavenLocal
,它似乎工作。
resolvers += "mavenLocal" at s"${sys.props("user.home")}/.m2/repository"
0
嘗試SBT包插件https://github.com/xerial/sbt-pack 它packCopyDependencies任務。也許這就是你要找的。
相關問題
- 1. 將maven項目的依賴項複製到特定文件夾
- 2. 需要將依賴項複製到指定的文件夾
- 3. 如何將本地庫依賴項添加到sbt項目?
- 4. 如何通過SBT將本地緩存的jar文件複製到文件夾?
- 5. Maven SBT依賴項構件?
- 6. 與本地的依賴和複製Maven項目文件
- 7. 複製文件到本地文件夾
- 8. 將裝載的文件夾複製到本地文件夾
- 9. 將所有依賴庫移動到netbeans中的文件夾
- 10. MSBuild將依賴項目的輸出複製到另一個文件夾
- 11. 將依賴項程序集資源複製到特定文件夾
- 12. 如何將Bundle-classpath jar及其從maven repo的依賴項複製到我的本地lib文件夾中?
- 13. 將文件複製到所有文件夾批處理文件?
- 14. 將文件夾中的所有文件複製到文檔中
- 15. 從谷歌雲鬥將文件複製到本地文件夾
- 16. rsync將本地文件結構複製到遠程文件夾
- 17. 將圖像文件從web url複製到本地文件夾?
- 18. 將文件複製到本地文件夾在Win 8
- 19. 創建文件夾並將文件複製到本地磁盤
- 20. 將具有本地依賴項的Maven項目部署到WildFly
- 21. 將文件複製到所有子文件夾中
- 22. Vb.net將文件複製到所有子文件夾
- 23. Sbt項目依賴關係
- 24. 防止Maven來的依賴複製到WEB-INF \ lib文件夾
- 25. TeamCity依賴沒有複製文件?
- 26. 將文件夾複製到文件夾
- 27. 將文件從共享文件夾複製到javaservlet中的本地文件夾
- 28. WiX:將文件從本地文件夾複製到安裝文件夾
- 29. 將一個文件複製到文件夾中的所有文件夾?
- 30. Linux shell腳本 - 將文件夾從VPS複製到本地PC
我還沒有看到任何功能,允許我完全下載所有的依賴關係。這就是我所追求的。還是謝謝你的答案。 – Martijn
@MartijnR那麼我在build.sbt'resolvers + =「mavenLocal」在s「$ {sys.props(」user.home「)} /。m2/repository」''中執行此操作,並且它似乎沒有下載當它在'mavenLocal'處找到它們時再次依賴庫。 –
是的,問題是。我使用的是docker,意思是沒有保存緩存。而複製我的整個maven緩存將是愚蠢的,因爲它包含了很多不相關的東西。 :( – Martijn