2012-01-09 8 views
6

Czy można zmienić zależności środowiska wykonawczego gradle zgodnie z systemem operacyjnym?Modyfikuje zależności runtime gradle zgodnie z systemem operacyjnym?

Używam SWT w mojej aplikacji, która ma słoiki zależne od platformy. Chcę tylko rozpowszechniać właściwy słoik SWT dla każdej uruchomionej platformy. Coś takiego:

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

Mam nadzieję, że to pytanie ma sens. Dzięki.

Odpowiedz

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 nie ma publicznego interfejsu API do sprawdzania systemu operacyjnego, ale można użyć czegoś takiego jak System.getProperty ("os.name") i odpowiednio postępować (np. Z prostą instrukcją if).

Powiązane problemy