web-dev-qa-db-ja.com

ダウンロードしたsbtのライブラリはどこにありますか?

Sbtはダウンロードしたjarをどこに置きますか?すべての依存関係をダウンロードしてlib /ディレクトリの下に置くようにsbtに要求しようとしていますが、ScalaIDEで使用できるようにしていますが、実行した後はsbt compileこれらのダウンロードされた.jarの場所がわかりません

27
firstprayer

すべての新しいSBTバージョン(0.7.x以降)は、デフォルトで、ダウンロードしたJARSをホームディレクトリの.ivy2ディレクトリに配置します。

Linuxを使用している場合、これは通常/home/<username>/.ivy2/cacheです。

Windowsを使用している場合、これは通常c:\Users\<username>\.ivy2\cacheです。

編集:

これは、私のプロジェクトの1つからの例です。ここでは、依存関係をターゲットフォルダーにコピーするSBTタスクを定義しています。このコードをproject/Build.scalaプロジェクト定義ファイルに配置できます。プロジェクト定義ファイルに次のようなものが含まれているはずです(詳細はwww.scala-sbt.orgにあります):

import sbt._
import Keys._
import Process._

object MyProjectBuild extends Build {

次のコードは、プログラムアーティファクトとそのすべてのクラスパス依存関係をキャプチャするdeployタスクを定義することにより、すべてのライブラリをdeploy/libzサブディレクトリにコピーします。

val deployKey = TaskKey[Unit](
  "deploy",
  "Deploys the project in the `deploy` subdirectory."
)

val deployTask = deployKey <<= (artifactPath in (Compile, packageBin), dependencyClasspath in Compile) map {
  (artifact, classpath) =>
  val deploydir = new File("deploy")
  val libzdir = new File("deploy%slib".format(File.separator))

  // clean old subdirectory
  deploydir.delete()

  // create subdirectory structure
  deploydir.mkdir()
  libzdir.mkdir()

  // copy deps and artifacts
  val fullcp = classpath.map(_.data) :+ artifact
  def lastName(file: File) = if (file.isFile) file.getName else file.getParentFile.getParentFile.getParentFile.getName
  for (file <- fullcp) {
    println("Copying: " + file + "; lastName: " + lastName(file))
    if (file.isFile) IO.copyFile(file, (libzdir / lastName(file)).asFile);
    else IO.copyDirectory(file, (libzdir / lastName(file)))
  }
} dependsOn (packageBin in Compile)
23
axel22

http://mvnrepository.com/ からsbt依存関係を見つけます

たとえば、MySQL Java Connector、検索ボックスから検索して好きなバージョンを選択すると、sbtタグが表示されます。

libraryDependencies += "mysql" % "mysql-connector-Java" % "5.1.34"

ダウンロードしたjarを検索する場合は、WindowsでC:\Users\<userName>\.ivy2\cache

linuxでは~/.ivy2/cache

幸運を

4
Rollen Holt

以下の参照はsbtに役立ちます。

https://www.scala-sbt.org/1.x/docs/Launcher-Configuration.html

Sbt.ivy.homeがパラメーターで、デフォルトは$ {user.home} /。ivy2 /です。

...

[リポジトリ]ローカルのtypesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/ 、[organization]/[module]/[revision]/[type] s /artifact.[ext]、bootOnly maven-central sonatype-snapshots: https://oss.sonatype.org/content/repositories/snapshots

[ブート]ディレクトリ:$ {sbt.boot.directory-$ {sbt.global.base-$ {user.home} /。sbt}/boot /}

[ivy] ivy-home:$ {sbt.ivy.home-$ {user.home} /。ivy2 /}

...

1
tabata