2012-01-09 11 views
6

¿Es posible cambiar las dependencias de tiempo de ejecución de gradle de acuerdo con el sistema operativo en el que se encuentra?¿Modifica las dependencias de tiempo de ejecución de gradle según el sistema operativo?

Estoy usando el SWT en mi aplicación, que tiene frascos que dependen de la plataforma. Solo quiero distribuir el contenedor SWT correcto para cada plataforma que se está ejecutando. Algo como:

dependencies { 
    runtime fileTree(dir: 'swt', include: 'swt_win_32.jar') if windows. 
    runtime fileTree(dir: 'swt', include: 'swt_linux_x86.jar') if linux. 
} 

Espero que esta pregunta tenga sentido. Gracias.

Respuesta

6
String jarName; 
switch(System.getProperty('os.name').toLowerCase().split()[0]) { 
    case 'windows': 
    jarName = 'swt_win_32.jar' 
    break 
    case 'linux': 
    jarName = 'swt_linux_x86.jar' 
    break 
    default: 
    throw new Exception('Unknown OS') 
} 

dependencies { 
    runtime fileTree(dir: 'swt', include: jarName) 
} 
3

Gradle no tiene una API pública para verificar el sistema operativo, pero puede usar algo como System.getProperty ("os.name") y actuar en consecuencia (por ejemplo, con un simple if-statement).

Cuestiones relacionadas