2017-04-06 17 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が使用されているようだ私のリポジトリとは異なるultディレクトリ構造。

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

私の質問は、どうやって私のjarを使用するようにSBTを設定できますか?たぶん、私のjarファイル

<my repository>/sbt-0.13.12.jar 

答えて

1

の絶対パスを使用するように強制的にこれを行うための適切な方法は、プロキシにあなたの会社のプライベートリポジトリとのそれら2つのリポジトリです。最新版のネクサスが、アイビーリポジトリのプロキシ/サービングのサポートを追加したかどうかは疑問です。そうでない場合は、アーティファクトに切り替える必要があります。

代わりに、ローカルにインストールされたアーティファクトを使用して必要なリポジトリをプロキシし、sshトンネルを通じてvmで使用できるようにすることもできます。私は会社のリポジトリを管理する特権を持っていないときにこのトリックをしました。

上記の考えがあなたのために働かない場合。最後のチャンスは、必要なリポジトリにアクセスできるどこかでプロジェクトを構築することです。 〜/ .ivyディレクトリを仮想マシンにコピーします。それは、ivyが取り出したアーティファクトを格納する場所です。

+0

私が〜.ivyをコピーすると、後でsbtコマンドを呼び出す必要はありませんか? – cebuseiran

+0

あなたのプロジェクトをビルドするためには、依然としてtコールsbtが必要です。しかし今、sbtはネットワークを介して依存関係を取得する必要はありません。 – thirstycrow

1

これは、インターネットに接続していないが、sbtを使用する必要があるユーザーにとっては便利です。

これは、渇きの3番目のオプションに基づいています。

まず、インターネットにアクセスできる環境でsbtを更新する必要があります。

sbt update 

あなたが

SBTの更新を呼び出す前に、あなたのbuild.propertiesを編集する必要がありSBTの特定のバージョンを必要とするなら、あなたはあなたをコピーします。そして、ターゲット環境(なしインターネット)へ

に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 
関連する問題