2017-04-06 45 views
1

我正在嘗試在我的Linux VM(CentOS)中安裝SBT並具有非常嚴格的安全性。如何讓我的本地資源庫使用我的jar?

它不能訪問

我已經提取的SBT zip文件和bin路徑添加到環境變量。

正如我所料,我無法運行SBT。

[[email protected]]$ sbt 
Getting org.scala-sbt sbt 0.13.12 ... 

:: problems summary :: 
:::: WARNINGS 
      module not found: org.scala-sbt#sbt;0.13.12 

    ==== local: tried 

     /home/admin/.ivy2/local/org.scala-sbt/sbt/0.13.12/ivys/ivy.xml 

     -- artifact org.scala-sbt#sbt;0.13.12!sbt.jar: 

     /home/admin/.ivy2/local/org.scala-sbt/sbt/0.13.12/jars/sbt.jar 

    ==== Maven Central: tried 

     https://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.12/sbt-0.13.12.pom 

     -- artifact org.scala-sbt#sbt;0.13.12!sbt.jar: 

     https://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.12/sbt-0.13.12.jar 

    ==== typesafe-ivy-releases: tried 

     https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.12/ivys/ivy.xml 

    ==== sbt-ivy-snapshots: tried 

     https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/sbt/0.13.12/ivys/ivy.xml 

      :::::::::::::::::::::::::::::::::::::::::::::: 

      ::   UNRESOLVED DEPENDENCIES   :: 

      :::::::::::::::::::::::::::::::::::::::::::::: 

      :: org.scala-sbt#sbt;0.13.12: not found 

      :::::::::::::::::::::::::::::::::::::::::::::: 


:::: ERRORS 
    Server access Error: Connection timed out url=https://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.12/sbt-0.13.12.pom 

    Server access Error: Connection timed out url=https://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.12/sbt-0.13.12.jar 

    Server access Error: Connection timed out url=https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.12/ivys/ivy.xml 

    Server access Error: Connection timed out url=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/sbt/0.13.12/ivys/ivy.xml 


:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS 
unresolved dependency: org.scala-sbt#sbt;0.13.12: not found 
Error during sbt execution: Error retrieving required libraries 
(see /home/admin/.sbt/boot/update.log for complete log) 
Error: Could not retrieve sbt 0.13.12 

我設法讓它加入資料庫文件

庫使用我的倉庫

[repositories] 
    local 
    my-maven-proxy-releases: http://nexuspro.company.com/nexus/service/local/repositories/ 

然後我跑這個參數SBT命令:

sbt -Dsbt.repository.config=/sbt/conf/repositories 

現在我的問題是SBT似乎使用了defa ult目錄結構與我的存儲庫不同。

<my repository>/org/scala-sbt/sbt/0.13.12/sbt-0.13.12.jar 

所以我現在的問題是如何設置SBT使用我的jar?也許強迫它使用我的罐子的絕對路徑

<my repository>/sbt-0.13.12.jar 

回答

1

這樣做的一種正確方法是將這兩個存儲庫與您公司的私有存儲庫進行代理。我想知道最新版本的nexus是否增加了對代理/服務常春藤庫的支持。如果沒有,你必須切換到artifactory。

另一種方法是使用本地安裝的artifactory代理所需的存儲庫,並通過ssh隧道將其提供給vm。當我沒有管理公司資源庫的特權時,我扮演了這個角色。

如果以上的想法不適合你。最後的機會是將您的項目建立在可訪問所需存儲庫的地方。然後將〜/ .ivy目錄複製到您的虛擬機。這就是常春藤存儲提取的文物的地方。

+0

嗯如果我複製〜.ivy那麼我不需要在調用sbt命令之後? – cebuseiran

+0

你仍然需要撥打sbt來建立你的項目。但是現在sbt不需要通過網絡獲得依賴關係。 – thirstycrow

1

這對你們誰沒有互聯網連接,但需要使用sbt是有用的。

這是基於口渴的第三種選擇。

首先,您需要在可訪問互聯網的環境中更新您的sbt。

sbt update 

如果您需要SBT的某個版本,你需要調用SBT更新

先修改build.properties然後您複製。ivy2 \高速緩存到目標環境(沒有互聯網)

然後設置緩存爲你的倉庫

[repositories] 
local 
cache: file://home/admin/.ivy2/cache, [organisation]/[module]/[type]s/[module]-[revision].[type], [organisation]/[module]/ivy-[revision].xml 

然後用參數指向你的資料庫文件中調用SBT

sbt -Dsbt.repository.config=/sbt/conf/repositories 
相關問題