Cel mai bun mod de a scrie o sarcina Gradle care poate fi personalizat din linia de comandă?

voturi
4

Vreau să ofere valori implicite pentru proprietățile mele, dar le permite să fie înlocuită din linia de comandă într-un mod relativ ușor. Sunt folosind Gradle 1.0 Milestone 3.

Aceasta este ceea ce am, funcționează destul de mult modul în care am dori, dar este destul de verbose. Pur și simplu nu pare foarte Gradle-ish - spre deosebire de munca propriu-zisă fac, în cazul în care 150-impar de linii de cod Java au comprimat până la aproximativ 2 linii de script-ul gradle.

task sbtCopyTask  {
  fromProp = defaultCopyFrom
  toProp = defaultCopyTo

  overrideFromProp = System.getProperty('fromSysProp')
  if( overrideFromProp != null && !overrideFromProp.trim().empty ){
    fromProp = overrideFromProp
  }

  doLast {
    println copying ${fromProp} to ${toProp}
  }
}

executare

$GRADLE_HOME/bin/gradle sbtCopyTask

rezultate din:

copying defaultCopyFrom to defaultCopyTo

și executare

$GRADLE_HOME/bin/gradle sbtCopyTask -DfromSysProp=wibble

rezultate din:

copying wibble to defaultCopyTo
  • Știu că există o sarcină copie a construi în Gradle - întrebarea pe cer este „Cum scriu un scenariu construi, care este personalizabil din linia de comandă“.
  • Am încercat „-P“ opțiune în linia de comandă - nu pare să fac ce vreau.
  • Vreau să fie în măsură să facă acest lucru din linia de comandă, fișiere sau proprietăți variabile de mediu ar fi un inconvenient.

Editare: Doh, la 10 secunde după ce a posta - acest lucru pare un fel de evident.

Deci, acest lucru funcționează bine și este complet destul de bun pentru mine (dacă nu există o modalitate mai bună?)

fromProp = System.getProperty('fromProp', 'defaultFromProp')
Întrebat 23/09/2011 la 07:14
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

Cel mai bun mod de a scrie o sarcina Gradle care poate fi personalizat din linia de comandă?

voturi
4

Vreau să ofere valori implicite pentru proprietățile mele, dar le permite să fie înlocuită din linia de comandă într-un mod relativ ușor. Sunt folosind Gradle 1.0 Milestone 3.

Aceasta este ceea ce am, funcționează destul de mult modul în care am dori, dar este destul de verbose. Pur și simplu nu pare foarte Gradle-ish - spre deosebire de munca propriu-zisă fac, în cazul în care 150-impar de linii de cod Java au comprimat până la aproximativ 2 linii de script-ul gradle.

task sbtCopyTask  {
  fromProp = "defaultCopyFrom"
  toProp = "defaultCopyTo"

  overrideFromProp = System.getProperty('fromSysProp')
  if( overrideFromProp != null && !overrideFromProp.trim().empty ){
    fromProp = overrideFromProp
  }

  doLast {
    println "copying ${fromProp} to ${toProp}"
  }
}

executare

$GRADLE_HOME/bin/gradle sbtCopyTask

rezultate din:

copying defaultCopyFrom to defaultCopyTo

și executare

$GRADLE_HOME/bin/gradle sbtCopyTask -DfromSysProp="wibble"

rezultate din:

copying wibble to defaultCopyTo
  • Știu că există o sarcină copie a construi în Gradle - întrebarea pe cer este „Cum scriu un scenariu construi, care este personalizabil din linia de comandă“.
  • Am încercat „-P“ opțiune în linia de comandă - nu pare să fac ce vreau.
  • Vreau să fie în măsură să facă acest lucru din linia de comandă, fișiere sau proprietăți variabile de mediu ar fi un inconvenient.

Editare: Doh, la 10 secunde după ce a posta - acest lucru pare un fel de evident.

Deci, acest lucru funcționează bine și este complet destul de bun pentru mine (dacă nu există o modalitate mai bună?)

fromProp = System.getProperty('fromProp', 'defaultFromProp')
Publicat 23/09/2011 la 07:14
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more