Изменить зависимости времени выполнения Gradle в соответствии с операционной системой? - PullRequest
7 голосов
/ 10 января 2012

Можно ли изменить зависимости времени выполнения gradle в зависимости от того, в какой операционной системе он работает?

Я использую SWT в своем приложении, в котором есть фляги, которые зависят от платформы. Я хочу распространять правильный SWT-файл для каждой платформы, на которой он работает. Что-то вроде:

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

Надеюсь, этот вопрос имеет смысл. Спасибо.

Ответы [ 4 ]

6 голосов
/ 11 января 2012
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 голосов
/ 10 января 2012

У Gradle нет открытого API для проверки ОС, но вы можете использовать что-то вроде System.getProperty ("os.name") и действовать соответственно (например, с помощью простого оператора if).

0 голосов
/ 19 мая 2018

Плагин goomph специально для этой цели имеет плагин mavencentral .

apply plugin: 'com.diffplug.gradle.eclipse.mavencentral'
eclipseMavenCentral {
  release '4.7.0', {
    compile 'org.eclipse.swt'
    useNativesForRunningPlatform()
  }
}
0 голосов
/ 25 января 2013

Если вы хотите использовать более гибкий способ, вы можете использовать Плагин Gradle OS. https://bitbucket.org/tinhtruong/gradle-os-plugin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...