variable una tipos tabla pasar parametros parametro matematicas investigacion funciones funcion entre ejemplo diferencia desde variables gradle null default-value

variables - tipos - Defina una variable y establézcala en un valor predeterminado si algo sale mal durante la definición



tabla de variables investigacion (1)

Tengo el siguiente código en mi build.gradle

Los contenidos en version.properties son:

buildVersion=1.2.3

  • El valor de la variable $v durante la compilación de Gradle viene como: 1.2.3
  • El valor de la variable $artifactoryVersion en JENKINS build viene como: 1.2.3. 1 , 1.2.3. 2 , 1.2.3. x ... y así sucesivamente, donde el cuarto dígito es Jenkins BUILD_NUMBER disponible para gradle script durante la compilación de Jenkins.

PERO, cuando estoy ejecutando este build.gradle en mi escritorio donde no tengo la variable BUILD_NUMBER disponible o configurada en mis variables ENVIRONMENT, aparece un error que dice que trim() no puede funcionar en null. (ya que no hay BUILD_NUMBER para Desktop / local build).

Estoy tratando de encontrar una forma, es decir

  1. ¿Qué debo codificar en mi secuencia de comandos para que si BUILD_NUMBER no está disponible, en lugar de fallar el procesamiento de compilación de un error, establezca jenkinsBuild = "0" (código jenkinsBuild = "0" ) de lo contrario, elija lo que obtiene durante la compilación de Jenkins.

    Por ejemplo: en Bash, establecemos una variable var1=${BUILD_NUMBER:-"0"} que establecerá var1 en un número de BUILD Jenkins BUILD si está disponible y configurado en un valor; de lo contrario, si es NULL, entonces var1 = "0" .

  2. NO BUILD_NUMBER que cada desarrollador / usuario configure este BUILD_NUMBER en algún archivo de propiedad. Todo lo que quiero es que, si esta variable no existe, el código debería poner "0" en la variable jenkinsBuilds y no generar errores durante las compilaciones de escritorio. Sé durante la compilación de Jenkins, está funcionando bien.

// Build Script def fname = new File( ''version.properties'' ) Properties props = new Properties() props.load( new FileInputStream( fname ) ) def v = props.get( ''buildVersion'' ) def env = System.getenv() def jenkinsBuild = env[''BUILD_NUMBER''].trim() if( jenkinsBuild.length() > 0 ) { artifactoryVersion = "$v.$jenkinsBuild" }


Todo lo que necesita es un código Java / Groovy normal:

def jenkinsBuild = System.getenv("BUILD_NUMBER") ?: "0"

El código anterior utiliza el operador "elvis" de Groovy, y es una forma abreviada del siguiente código, que usa el operador ternario de Java:

def buildNumber = System.getenv("BUILD_NUMBER") def jenkinsBuild = buildNumber != null ? buildNumber : "0"