質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.10%

SBT 0.13を利用したいが、Mavenリポジトリが404の場合の対応方法

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 4,287

score 52

3~4年前にScalaで作成されたシステムの改修を担当することになりました。
私自身、Javaはある程度経験がありますが、Scalaは全くの初心者です。
対象のシステムは3~4年前から全く変更されておらず、実装者もすでに会社におりません。

 (前回開発時の)開発環境

Java :7
Scala:2.9.1
SBT  :0.13.8
(Javaのアップデートは出来ないと言われています)

 試したこと

Scalaは2.9系の最新2.9.3をインストールし、パスを通しました。

C:\WINDOWS\system32>scala -version
Scala code runner version 2.9.3 -- Copyright 2002-2011, LAMP/EPFL

次にSBTでjarファイルを作成していた、という前任者のメモがあったため、
SBTのインストールを行いました。

開発時にSBTの0.13系を利用していたそうなので、
下記ページより0.13系最新の0.13.17をDLしました。
https://www.scala-sbt.org/download.html

インストール後、パスを通しWindowsのコマンドプロンプトでSBTのバージョンを確認しようとsbt --versionを実行してみたところ、
下記のようにいくつかのファイルにアクセスできないというエラーが発生しました。

C:\WINDOWS\system32>sbt --version
Getting org.scala-sbt sbt 0.13.17  (this may take some time)...

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

        ==== local: tried

          C:\Users\hoge\.ivy2\local\org.scala-sbt\sbt\0.13.17\ivys\ivy.xml

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

          C:\Users\hoge\.ivy2\local\org.scala-sbt\sbt\0.13.17\jars\sbt.jar

        ==== local-preloaded-ivy: tried

          file:/C:/Users/hoge/.sbt/preloaded/org.scala-sbt/sbt/0.13.17/ivys/ivy.xml

        ==== local-preloaded: tried

          file:/C:/Users/hoge/.sbt/preloaded/org/scala-sbt/sbt/0.13.17/sbt-0.13.17.pom

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

          file:/C:/Users/hoge/.sbt/preloaded/org/scala-sbt/sbt/0.13.17/sbt-0.13.17.jar

        ==== Maven Central: tried

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

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

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

        ==== typesafe-ivy-releases: tried

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

        ==== sbt-ivy-snapshots: tried

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

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

                ::          UNRESOLVED DEPENDENCIES         ::

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

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

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


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

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

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

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


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

C:\WINDOWS\system32>

アクセスできないURLのうち、下記の3つはバージョンが古いせいなのか
すでに404となっていました。

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

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

https://dl.bintray.com/sbt/ivy-snapshots/org.scala-sbt/sbt/0.13.17/ivys/ivy.xml

こういった場合は、どうすればよいのでしょうか?
それとも0.13系はすでに使用できないのでしょうか?
ご存知の方がいらっしゃいましたらアドバイスをお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

Scalaは2.9系の最新2.9.3をインストールし、パスを通しました。

sbtを使っている場合、そもそも必要ないです(実害もないはずなので、インストールしたならひとまずそのままでよいです)

いくつかのファイルにアクセスできないというエラーが発生

これは、maven centralやbintray(sbt 0.13はここに依存している)、というサイトで、TLS 1.1以前のサポートが打ち切られたことによるものです。

https://xuwei-k.hatenablog.com/entry/2018/07/17/133225

アクセスできないURLのうち、下記の3つはバージョンが古いせいなのか
すでに404となっていました。

そもそも最初からその3つのURLには存在せず、べつのところ(べつのリポジトリ)にあります。(以下のURLのあたりなど)

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

それとも0.13系はすでに使用できないのでしょうか?

0.13系は一応まだ利用できます。0.13系なら 0.13系最新の0.13.17をDL したのは正しいです。

よって、上記blogにあるように、Java 7ならば、sbt起動時に -Dhttps.protocols=TLSv1.2 という引数を追加することで、(ダウンロード出来ない問題に関しては)解決する可能性が高いと思います。
もしそれがうまくいかない場合、以下のsbt本体での修正のように
-Dsbt.repository.secure=false や  -Dsbt.override.build.repos=true の両方を指定する方法もあります。(おそらくこちらのほうが面倒?特殊な設定ファイルも必要な可能性あり)

https://github.com/sbt/sbt/pull/4294

それでもうまくいかない場合か、他の方法としては、

  • 一旦Java 8に上げてダウンロードして、Java 7に下げる
  • 他の(Java 8の)マシンで依存解決して、その後必要なjarをコピーする

などでしょうか。

ちなみに、最後に余計なおせっかいなアドバイスとしては、sbt 0.13はまだもう少し使えるかもしれませんが、Java 7やScala 2.9は完全にサポートが終了していると思うので、今後このシステムを動かし続ける必要があるなら、JavaやScalaのversionを上げたほうがいいと思います。
(Scala 2.9はJava 8を未サポートなので、もし仮にあげるならScalaが先)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/03 19:25

    素早いご回答ありがとうございます!
    sbtconfig.txtに`-Dhttps.protocols=TLSv1.2`の設定を追加したところ、関連ライブラリのDLが出来ることを確認できました。
    また、サポート切れバージョンに関してのアドバイスもありがとうございます。こちら社内でもアップデートを検討します。
    本当に助かりました。ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る