1. リゾルバー

リゾルバー 

Mavenリゾルバー 

Mavenリポジトリのリゾルバーは次のように追加します

resolvers +=
  "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

これは、最も一般的なユーザー定義リゾルバーの種類です。このページの残りの部分では、他の種類のリポジトリを定義する方法について説明します。

ローカルMavenリゾルバー 

以下は、Mavenローカルリポジトリにリゾルバーを追加します

resolvers += Resolver.mavenLocal

カスタムロケーションのリゾルバーを追加するには

resolvers += MavenCache("local-maven", file("path/to/maven-repo/releases"))

定義済みリゾルバー 

いくつかの定義済みのリポジトリが利用可能であり、以下にリストされています

たとえば、java.netリポジトリを使用するには、ビルド定義で次の設定を使用します

resolvers += JavaNet2Repository

定義済みリポジトリは、今後Resolverの下に置かれ、一箇所にまとめられます

Resolver.sonatypeOssRepos("releases")  // Or "snapshots"

カスタムリゾルバー 

sbtは、Ivyで利用可能なリポジトリタイプ(ファイル、URL、SSH、SFTP)へのインターフェースを提供します。Ivyのリポジトリの重要な機能は、パターンを使用してリポジトリを構成することです。

目的のタイプについて、sbt.Resolverのファクトリを使用してリポジトリ定義を構築します。このファクトリは、さらに構成できるRepositoryオブジェクトを作成します。次の表には、リポジトリタイプのIvyドキュメントへのリンクと、ファクトリおよびリポジトリクラスのAPIドキュメントへのリンクが含まれています。SSHおよびSFTPリポジトリは、ファクトリの名前を除いて同一に構成されます。SSHにはResolver.sshを使用し、SFTPにはResolver.sftpを使用します。

タイプ ファクトリ Ivyドキュメント ファクトリAPI リポジトリクラスAPI
ファイルシステム Resolver.file Ivyファイルシステム ファイルシステムファクトリ FileRepository API
SFTP Resolver.sftp Ivy sftp sftpファクトリ SftpRepository API
SSH Resolver.ssh Ivy ssh sshファクトリ SshRepository API
URL Resolver.url Ivy url urlファクトリ URLRepository API

基本的な例 

これらは、デフォルトのMavenスタイルのリポジトリレイアウトを使用する基本的な例です。

ファイルシステム 

現在の作業ディレクトリのtestディレクトリにファイルシステムリポジトリを定義し、このリポジトリへのパブリッシングはアトミックである必要があることを宣言します。

resolvers += Resolver.file("my-test-repo", file("test")) transactional()
URL 

"https://example.org/repo-releases/"にURLリポジトリを定義します。

resolvers += Resolver.url("my-test-repo", url("https://example.org/repo-releases/"))

Ivyリポジトリを指定するには、次を使用します

resolvers += Resolver.url("my-test-repo", url)(Resolver.ivyStylePatterns)

または、以下のカスタムレイアウトセクションで説明されているレイアウトパターンをカスタマイズします。

SFTPおよびSSHリポジトリ 

以下は、ホスト"example.org"からSFTPで提供されるリポジトリを定義します

resolvers += Resolver.sftp("my-sftp-repo", "example.org")

ポートを明示的に指定するには

resolvers += Resolver.sftp("my-sftp-repo", "example.org", 22)

ベースパスを指定するには

resolvers += Resolver.sftp("my-sftp-repo", "example.org", "maven2/repo-releases/")

sftpおよびsshによって返されるリポジトリの認証は、asメソッドによって構成できます。

パスワード認証を使用するには

resolvers += Resolver.ssh("my-ssh-repo", "example.org") as("user", "password")

または、パスワードの入力を求められるようにするには

resolvers += Resolver.ssh("my-ssh-repo", "example.org") as("user")

キー認証を使用するには

resolvers += {
  val keyFile: File = ...
  Resolver.ssh("my-ssh-repo", "example.org") as("user", keyFile, "keyFilePassword")
}

または、キーファイルパスワードが不要な場合や、入力を求められるようにしたい場合

resolvers += Resolver.ssh("my-ssh-repo", "example.org") as("user", keyFile)

サーバーへのパブリッシング時に使用される権限を指定するには

resolvers += Resolver.ssh("my-ssh-repo", "example.org") withPermissions("0644")

これは、chmodのようなモード指定です。

カスタムレイアウト 

これらの例では、パターンを使用してカスタムリポジトリレイアウトを指定します。ファクトリメソッドは、使用するパターンを定義するPatternsインスタンスを受け入れます。パターンは最初にベースファイルまたはURLに対して解決されます。デフォルトのパターンは、デフォルトのMavenスタイルのレイアウトを提供します。異なるレイアウトを使用するには、異なるPatternsオブジェクトを指定します。例えば

resolvers += Resolver.url("my-test-repo", url)( Patterns("[organisation]/[module]/[revision]/[artifact].[ext]") )

メタデータとアーティファクトに対して、複数のパターンまたはパターンを個別に指定できます。また、リポジトリがMaven互換であるかどうか(Ivyで定義されているとおり)を指定することもできます。使用するメソッドについては、patterns APIを参照してください。

ファイルシステムおよびURLリポジトリの場合、ベースURLを省略し、空のPatternsインスタンスを渡し、ivysartifactsを使用することで、絶対パターンを指定できます

resolvers += Resolver.url("my-test-repo") artifacts
        "https://example.org/[organisation]/[module]/[revision]/[artifact].[ext]"