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) | 添加一个独立的模式,该模式将用于在此仓库中查找构件文件。除非通过 |
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)
添加一个独立的模式,该模式将用于在此仓库中查找构件文件。除非通过 IvyArtifactRepository.ivyPattern(java.lang.String)
提供了特定的 ivy 模式,否则此模式也将用于查找 ivy 文件。如果此模式不是完全限定的 URL,则它将被解释为相对于项目目录的文件。它不会相对于 IvyArtifactRepository.setUrl(java.lang.Object)
中指定的 URL 进行解释。以这种方式添加的模式将添加到通过 IvyArtifactRepository.setUrl(java.lang.Object)
添加的任何基于布局的模式之外。
void
authentication
(Action
<? super AuthenticationContainer
>
action)
Action
<? super AuthenticationContainer
>配置此仓库的身份验证方案。
此方法针对此项目的 AuthenticationContainer
执行给定的 action。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 配置此仓库的凭据。
如果未为此仓库分配任何凭据,则会将指定类型的空凭据集合分配给此仓库,并提供给配置 action。如果已为此仓库指定凭据,则会将它们传递给给定的配置 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/
[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier])(.[ext])
- Ivy:
$baseUri/
[organisation]/[module]/[revision]/ivy-[revision].xml
应用以下模式的仓库布局
- 构件:
$baseUri/
[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier])(.[ext])
- Ivy:
$baseUri/
[organisation]/[module]/[revision]/ivy-[revision].xml
按照 Maven 约定,'organisation' 值会通过将 '.' 替换为 '/' 进行进一步处理。
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 的主要概念文档中列出。