Gradle 从不在 JCenter 存储库之前解析 Artifactory 以获取依赖项
Gradle never resolves Artifactory before JCenter repository for dependencies
我有一个 Gradle 用于 Java 项目的构建脚本。我已经设置了一个内部 Artifactory 存储库作为项目依赖项的远程。
项目编译时,我想Gradle先去Artifactory请求;如果那里失败了,接下来应该尝试将 JCenter 作为备份。
我在 Gradle 2.8 中使用 Gradle Artifactory 插件 v3.1.1。该插件在闭包中定义其 contextUrl
、publish
存储库和 resolve
存储库:
artifactory {
contextUrl = "${artifactoryContextUrl}"
publish {
repository {
repoKey = 'Release'
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
maven = true
}
}
resolve {
repository {
repoKey = 'repo'
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
maven = true
}
}
}
构建脚本和项目都定义了它们的存储库:
buildscript {
repositories {
maven {
name 'Artifactory'
url "${artifactoryContextUrl}repo"
credentials {
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
}
}
jcenter()
}
}
repositories {
maven {
name 'Artifactory'
url "${artifactoryContextUrl}repo"
credentials {
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
}
}
jcenter()
}
我不得不求助于这些重复定义 Artifactory 存储库的重复语句,因为我似乎无法找到一种方法来定义 artifactory
闭包并将其放置在构建脚本中,以便 Gradle 在尝试 JCenter 之前引用这个定义的 resolve
回购协议。
最好,该解决方案将解决 buildscript
和 repositories
闭包中的重复定义,但我似乎不太可能在之前引用 artifactory
闭包中的属性Gradle-Artifactory 插件已安装。
- 您不需要在脚本的主要部分同时配置
artifactory {}
配置和 repositories
配置。在 buildscript
中使用 repositories
指向您的 Artifactory 实例,然后在主要部分使用 artifactory{}
DSL。
- 您不需要在脚本中配置
jcenter
,Artifactory 默认代理它。您不需要 "back up" Artifactory 与 JCenter,因为 JCenter 中存在的任何内容都可以从 Artifactory 解析。
我有一个 Gradle 用于 Java 项目的构建脚本。我已经设置了一个内部 Artifactory 存储库作为项目依赖项的远程。
项目编译时,我想Gradle先去Artifactory请求;如果那里失败了,接下来应该尝试将 JCenter 作为备份。
我在 Gradle 2.8 中使用 Gradle Artifactory 插件 v3.1.1。该插件在闭包中定义其 contextUrl
、publish
存储库和 resolve
存储库:
artifactory {
contextUrl = "${artifactoryContextUrl}"
publish {
repository {
repoKey = 'Release'
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
maven = true
}
}
resolve {
repository {
repoKey = 'repo'
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
maven = true
}
}
}
构建脚本和项目都定义了它们的存储库:
buildscript {
repositories {
maven {
name 'Artifactory'
url "${artifactoryContextUrl}repo"
credentials {
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
}
}
jcenter()
}
}
repositories {
maven {
name 'Artifactory'
url "${artifactoryContextUrl}repo"
credentials {
username = "${artifactoryUser}"
password = "${artifactoryPassword}"
}
}
jcenter()
}
我不得不求助于这些重复定义 Artifactory 存储库的重复语句,因为我似乎无法找到一种方法来定义 artifactory
闭包并将其放置在构建脚本中,以便 Gradle 在尝试 JCenter 之前引用这个定义的 resolve
回购协议。
最好,该解决方案将解决 buildscript
和 repositories
闭包中的重复定义,但我似乎不太可能在之前引用 artifactory
闭包中的属性Gradle-Artifactory 插件已安装。
- 您不需要在脚本的主要部分同时配置
artifactory {}
配置和repositories
配置。在buildscript
中使用repositories
指向您的 Artifactory 实例,然后在主要部分使用artifactory{}
DSL。 - 您不需要在脚本中配置
jcenter
,Artifactory 默认代理它。您不需要 "back up" Artifactory 与 JCenter,因为 JCenter 中存在的任何内容都可以从 Artifactory 解析。