使用 SNAPSHOT 依赖项发布时强制 Gradle 构建失败

bpl*_*lpu 6 android gradle

我想在使用 Gradle 构建 Android 应用程序或库的发行版本时阻止使用 SNAPSHOT 依赖项。如果构建版本时存在任何 SNAPSHOT 依赖项,如何强制 Gradle 构建失败?

Les*_*ieV 8

您可以使用ResolutionStrategy。

请参阅此处的 API: https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

以下示例由 Peter_Niederwieser 在 Gradle 论坛中发布 https://discuss.gradle.org/t/enforce-no-snapshot-dependency-in-gradle/3851/2

configurations.all {
    if (isRelease) {
      resolutionStrategy.eachDependency { details ->
          if (details.requested.version.endsWith("-SNAPSHOT")) {
              throw new GradleException("found snapshot dependency")
          }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

代码必须放置在模块 build.gradle 中或主 build.gradle 的“allprojects”部分中。