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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Scala

ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

9634閲覧

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

flaumig

総合スコア67

Scala

ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2018/09/03 07:36

編集2018/09/03 07:43

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系はすでに使用できないのでしょうか?
ご存知の方がいらっしゃいましたらアドバイスをお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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 09:20

編集2018/09/03 09:30
xuwei_k

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

flaumig

2018/09/03 10:25

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問