2017-04-06 48 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 
相关问题