Mavenリポジトリのリゾルバーは次のように追加します
resolvers +=
"Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
これは、最も一般的なユーザー定義リゾルバーの種類です。このページの残りの部分では、他の種類のリポジトリを定義する方法について説明します。
以下は、Mavenローカルリポジトリにリゾルバーを追加します
resolvers += Resolver.mavenLocal
カスタムロケーションのリゾルバーを追加するには
resolvers += MavenCache("local-maven", file("path/to/maven-repo/releases"))
いくつかの定義済みのリポジトリが利用可能であり、以下にリストされています
Resolver.mavenLocal これはローカルMavenリポジトリです。DefaultMavenRepository これは、https://repo1.maven.org/maven2/にあるメインのMavenリポジトリで、デフォルトで含まれていますJavaNet2Repository これは、https://maven.java.net/content/repositories/public/にあるjava.net Maven2リポジトリですResolver.sonatypeOssRepos("public") (または "snapshots"、"staging"、"releases") これは、https://oss.sonatype.org/content/repositories/public、https://s01.oss.sonatype.org/content/repositoriesにあるSonatype OSS MavenリポジトリですResolver.typesafeRepo("releases") (または "snapshots") これは、https://repo.typesafe.com/typesafe/releasesにあるTypesafeリポジトリですResolver.typesafeIvyRepo("releases") (または "snapshots") これは、https://repo.typesafe.com/typesafe/ivy-releasesにあるTypesafe IvyリポジトリですResolver.sbtPluginRepo("releases") (または "snapshots") これは、https://repo.scala-sbt.org/scalasbt/sbt-plugin-releasesにあるsbtコミュニティリポジトリですResolver.bintrayRepo("owner", "repo") これは、https://dl.bintray.com/[owner]/[repo]/にあるBintrayリポジトリですResolver.jcenterRepo これは、https://jcenter.bintray.com/にあるBintray JCenterリポジトリですたとえば、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()
"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)
または、以下のカスタムレイアウトセクションで説明されているレイアウトパターンをカスタマイズします。
以下は、ホスト"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インスタンスを渡し、ivysとartifactsを使用することで、絶対パターンを指定できます
resolvers += Resolver.url("my-test-repo") artifacts
"https://example.org/[organisation]/[module]/[revision]/[artifact].[ext]"