134 votes

Comment détecter le système d'exploitation actuel à partir de Gradle ?

J'ai trouvé cette réponse sur la façon de le faire avec Groovy :

Détection de la plateforme (Window ou Linux) par Groovy/Grails :

if (System.properties['os.name'].toLowerCase().contains('windows')) {
    println "it's Windows"
} else {
    println "it's not Windows"
}

Y a-t-il un meilleur moyen ?

7voto

Ruslan Pilin Points 51

Je n'aime pas détecter le système d'exploitation dans Gradle par l'intermédiaire des propriétés ou d'une tâche Ant, et l'option OperatingSystem ne contient plus la classe current() método.

Donc, à mon avis, la façon la plus propre de détecter l'OS serait :

Importation de DefaultNativePlatform :

import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform

Ensuite, utilisez DefaultNativePlatform dans votre tâche :

if (DefaultNativePlatform.getCurrentOperatingSystem().isWindows()) {
   println 'Windows'
}

Attention, cette méthode n'est pas idéale car elle utilise l'API interne de Gradle.

Il a été testé avec Gradle 4.10.

2voto

Sans aucune importation, j'ai obtenu ces valeurs à partir de System classe comme ici :

        def osName = System.getProperty("os.name").toLowerCase(Locale.ENGLISH)
        def osArch = System.getProperty("os.arch").toLowerCase(Locale.ENGLISH)
        def osVersion = System.getProperty("os.version").toLowerCase(Locale.ENGLISH)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X