Gradle 在本地环境中跳过渐变任务

Gradle 在本地环境中跳过渐变任务,gradle,Gradle,是否有办法配置自定义Gradle任务,使其仅在非本地环境中运行 task runMeOnlyInNonLocalEnvironments { doLast { println "This is not a local environment" } } 您可以使用task.onlyf告诉Gradle何时跳过它。您仍然需要一种方法来确定机器何时是非本地的。如果您可以控制这些机器,最简单的方法可能是在这些机器上创建一个将其标记为特定类型的环境属性。例如,如果您只想在C

是否有办法配置自定义Gradle任务,使其仅在非本地环境中运行

task runMeOnlyInNonLocalEnvironments {    
  doLast {
    println "This is not a local environment"    
  }
}
您可以使用task.onlyf告诉Gradle何时跳过它。您仍然需要一种方法来确定机器何时是非本地的。如果您可以控制这些机器,最简单的方法可能是在这些机器上创建一个将其标记为特定类型的环境属性。例如,如果您只想在CI计算机上运行任务,它可能看起来像:

task runMeOnlyInNonLocalEnvironments  {
    onlyIf {
        System.getenv().containsKey('CI')
    }

    doLast {
        println "This is not a local environment"
    }
}
首先,在build.gradle.kts文件中:

然后必须设置项目属性,这可以通过以下方法实现:

格拉德尔酒店

将以下任意一项放入gradle.properties文件中

a isNonLocal=true

b systemProp.org.gradle.project.isNonLocal=true

然后在非本地环境中运行gradle RunMeOnly

命令行参数

gradle-PisNonLocal=true runmeonlynonlocalenvironments

通过环境变量

在unix变体中,您可以在运行gradle的命令提示符中键入export ORG\u gradle\u PROJECT\u isNonLocal=true

然后在非本地环境中运行gradle RunMeOnly


你所说的当地环境是什么意思?你的意思是你希望ie CI上的事情发生不同吗?您可以尝试设置一些生成环境设置,请参见
tasks.register("runMeOnlyInNonLocalEnvironments") {
    doLast {
      if(project.hasProperty("isNonLocal")) {
         println("Running task in non local environment")
      }
    }
}