API 文档 | IvyArtifactRepository |
---|
一个使用 Ivy 格式存储工件和元数据的工件仓库。
当用于解析元数据和工件文件时,将搜索所有可用的模式。
当用于上传元数据和工件文件时,将仅使用一个主模式。
- 如果通过
IvyArtifactRepository.setUrl(java.lang.Object)
指定了 URL,则该 URL 将用于上传,并与应用的IvyArtifactRepository.layout(java.lang.String)
结合使用。 - 如果未指定 URL,但已通过
IvyArtifactRepository.artifactPattern(java.lang.String)
或IvyArtifactRepository.ivyPattern(java.lang.String)
添加了额外的模式,则将使用第一个定义的模式。
此类型的仓库由 RepositoryHandler.ivy(org.gradle.api.Action)
方法组创建。
属性 | 描述 |
allowInsecureProtocol | 指定是否允许通过不安全的 HTTP 连接与仓库通信。 |
authentication | 此仓库的认证方案。 |
credentials | 用于此仓库认证的指定类型的凭据。 |
name | 此仓库的名称。名称在仓库集中必须唯一。如果未提供名称,则会为仓库提供一个默认名称。 |
resolve | 用于从该仓库解析工件的元数据提供程序。该提供程序负责查找和解释该仓库中包含的模块和工件的元数据。使用此提供程序,您可以微调解析的发生方式。 |
url | 此仓库的基 URL。 |
方法 | 描述 |
artifactPattern(pattern) | 添加一个独立的模式,用于在此仓库中定位工件文件。此模式也将用于定位 ivy 文件,除非通过 |
authentication(action) | 配置此仓库的认证方案。 |
credentials(credentialsType) | 配置此仓库将由构建提供的凭据。 |
credentials(credentialsType, action) | 使用提供的action配置此仓库的凭据。 |
credentials(action) | 使用提供的action配置此仓库的用户名和密码凭据。 |
ivyPattern(pattern) | 添加一个独立的模式,用于在此仓库中定位 ivy 文件。如果此模式不是完全限定的 URL,它将被解释为相对于项目目录的文件。它不会相对于 |
layout(layoutName) | 指定仓库项目的组织方式。 |
metadataSources(configureAction) | 配置此仓库的元数据源。此方法将替换任何先前配置的元数据源。 |
patternLayout(config) | 指定仓库项目的组织方式。 |
指定是否允许通过不安全的 HTTP 连接与仓库通信。
出于安全目的,这有意要求用户逐个案例选择使用不安全协议。
Gradle 有意不提供允许全局禁用此检查的系统/gradle 属性。
允许通过不安全协议进行通信,可能导致中间人冒充目标服务器,并让攻击者能够将恶意可执行代码提供到系统中。
AuthenticationContainer
authentication
(只读)
此仓库的认证方案。
用于从该仓库解析工件的元数据提供程序。该提供程序负责查找和解释该仓库中包含的模块和工件的元数据。使用此提供程序,您可以微调解析的发生方式。
URI
url
此仓库的基 URL。
void
artifactPattern
(String
pattern)
添加一个独立的模式,用于在此仓库中定位工件文件。此模式也将用于定位 ivy 文件,除非通过 IvyArtifactRepository.ivyPattern(java.lang.String)
提供了特定的 ivy 模式。如果此模式不是完全限定的 URL,它将被解释为相对于项目目录的文件。它不会相对于 IvyArtifactRepository.setUrl(java.lang.Object)
中指定的 URL 进行解释。以这种方式添加的模式将添加到通过 IvyArtifactRepository.setUrl(java.lang.Object)
添加的任何基于布局的模式中。
void
authentication
(Action
<? super AuthenticationContainer
>
action)
Action
<? super AuthenticationContainer
>配置此仓库的认证方案。
此方法针对此项目的 AuthenticationContainer
执行给定的操作。 AuthenticationContainer
作为闭包的委托传递给闭包。
如果此仓库未分配认证方案,则会根据仓库的传输方案使用一组默认认证方案。
repositories {
maven {
url = "https://example.com/m2"
authentication {
basic(BasicAuthentication)
}
}
}
支持的认证方案类型扩展自Authentication
。
void
credentials
(Class
<? extends Credentials
>
credentialsType)
Class
<? extends Credentials
>配置此仓库将由构建提供的凭据。
凭据将根据仓库名称从 Gradle 属性中提供。如果无法解析此仓库的凭据,并且此仓库将在当前构建中使用,则构建将无法启动并指向缺失的配置。
repositories {
maven {
url = "https://example.com/m2"
credentials(PasswordCredentials)
}
}
credentialsType
参数目前支持以下凭据类型:
使用提供的action配置此仓库的凭据。
如果未为此仓库分配凭据,则将为此仓库分配一组指定类型的空凭据并将其提供给配置操作。如果已为此仓库指定了凭据,则它们将传递给给定的配置操作。
repositories { maven { url = "https://example.com/aws/proxy" credentials(AwsCredentials) { accessKey = "myAccessKey" secretKey = "mySecret" } } }
credentialsType
参数目前支持以下凭据类型:
void
credentials
(Action
<? super PasswordCredentials
>
action)
Action
<? super PasswordCredentials
>使用提供的action配置此仓库的用户名和密码凭据。
如果此仓库未分配凭据,则将一组空的用户名和密码凭据分配给此仓库并传递给action。
repositories { maven { url = "https://example.com/m2" credentials { username = 'joe' password = 'secret' } } }
void
ivyPattern
(String
pattern)
添加一个独立的模式,用于在此仓库中定位 ivy 文件。如果此模式不是完全限定的 URL,它将被解释为相对于项目目录的文件。它不会相对于 IvyArtifactRepository.setUrl(java.lang.Object)
中指定的 URL 进行解释。以这种方式添加的模式将添加到通过 IvyArtifactRepository.setUrl(java.lang.Object)
添加的任何基于布局的模式中。
void
layout
(String
layoutName)
指定仓库项目的组织方式。
可识别的值如下:
一个应用以下模式的仓库布局
- 工件:
$baseUri/
[organization]/[module]/[revision]/[artifact]-[revision](-[classifier])(.[ext])
- Ivy:
$baseUri/
[organization]/[module]/[revision]/ivy-[revision].xml
一个应用以下模式的仓库布局
- 工件:
$baseUri/
[organization]/[module]/[revision]/[artifact]-[revision](-[classifier])(.[ext])
- Ivy:
$baseUri/
[organization]/[module]/[revision]/ivy-[revision].xml
遵循 Maven 约定,'organization' 值将通过将 '.' 替换为 '/' 进行进一步处理。
void
metadataSources
(Action
<? super MetadataSources
>
configureAction)
Action
<? super MetadataSources
>配置此仓库的元数据源。此方法将替换任何先前配置的元数据源。
void
patternLayout
(Action
<? super IvyPatternRepositoryLayout
>
config)
Action
<? super IvyPatternRepositoryLayout
>指定仓库项目的组织方式。
布局由提供的闭包配置。
repositories { ivy { patternLayout { artifact '[module]/[revision]/[artifact](.[ext])' ivy '[module]/[revision]/ivy.xml' } } }
可用的模式令牌作为 Ivy 的主要概念文档的一部分列出。