Yanıtlar:
Genellikle org.gradle.api
paketin ilgili istisnasını atarım, örneğin InvalidUserDataException
birisi geçersiz bir şey girdiğinde veya GradleScriptException
daha genel hatalar için.
Geçerli görevi veya eylemi durdurmak ve bir sonrakine geçmek isterseniz, StopActionException
require(something != whatever) { "No good!" }
daha ayrıntılı ve tip- if(something != whatever){ throw new GradleException("No good!") }
GradleScriptException
, bir sebep için ikinci bir parametre gerektirmesidir.
make
, rules
(görevlerin) başarılı veya başarısız olduğu. Bir keresinde denedim return false
- Gradle sadece görmezden geldi ve koşmaya devam etti.
Şu anda özel bir yöntem yoktur, ancak bir tane eklemek için tartışmalar olmuştur.
Bir Gradle derlemesini durdurmanın önerilen yolu bir istisna atmaktır. Groovy istisnaları kontrol etmediğinden ve Gradle varsayılan olarak istisna türünü yazdırmadığından, hangi istisnanın atıldığı kritik değildir. Derleme komut dosyalarında GradleException sıklıkla kullanılır, ancak Groovy iddiası da makul görünmektedir (koşullara ve kitleye bağlı olarak). Önemli olan açık bir mesaj vermektir. Bir neden (varsa) eklemek hata ayıklamaya ( --stacktrace
) yardımcı olur .
Gradle adanmış istisna türü sağlar StopExecutionException
/ StopActionException
cari görev / görev eylemi durdurma ama yapı devam etmesi için.
Daha sonra istisnayı yakalamak için herhangi bir isteğiniz yoksa başka bir seçenek, karınca başarısızlık görevini çağırmaktır. Bence okumak biraz daha kolay ve --statratrace kullanmadan kullanıcıya güzel bir mesaj verebilirsiniz.
task (tarball, dependsOn: warAdmin) << {
ant.fail('The sky is falling!!')
}
Size şöyle bir mesaj verir:
* What went wrong:
Execution failed for task ':tarball'.
> The sky is falling!!
Muhtemelen yapabilirsiniz (belki de karıncanın BuildException atar?) Bu yakalamak ama bu bir amaç buysa o zaman ant.fail kullanmazdım. Ben sadece tim_yates önerdiği gibi standart sınıf istisna atarak yakalamak ne istisnayı görmek kolaylaştırır.
throw new GradleException("The sky is falling!!")
(Gradle 3.4.1)
Basit bir GradleException özelliğinin oluşturulması, komut dosyasının durdurulmasında işe yarar. Bu, gerekli ortam kurulumunu kontrol etmek için harika çalışır.
GradleException('your message, why the script is stopped.')
Misal:
if(null == System.getenv()['GRADLE_USER_HOME']) {
throw new GradleException('Required GRADLE_USER_HOME environment variable not set.')
}
Gradle javac görevinin hataları nasıl attığını taklit etmeye çalışan bir kod parçası:
task myCommand(type:Exec) {
... normal task setup ....
ignoreExitValue true
standardOutput = new ByteArrayOutputStream()
ext.output = { standardOutput.toString() }
doLast {
if (execResult.exitValue) {
logger.error(output())
throw new TaskExecutionException( it,
new Exception( "Command '${commandLine.join(' ')}' failed; "
+ "see task output for details." )
)
}
}
}
Komut geri döndüğünde 0
çıktı alınmaz. Başka bir değer standardOutput öğesini yazdırır ve derlemeyi durdurur.
NOT: Komutunuz errorOutput'a da yazarsa, bunu hata günlüğüne eklemeniz gerekebilir.