2012-01-09 5 views
6

gradleのランタイム依存関係を、それが動作しているシステムに応じて変更することはできますか?オペレーティングシステムに応じてgradleのランタイム依存性を変更しますか?

プラットフォーム依存のJARを持つ私のアプリケーションでSWTを使用しています。私はそれが実行している各プラットフォームのための正しいSWT jarを配布したいだけです。次のようなものがあります。

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

この質問は意味があります。ありがとう。

答えて

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にはOSをチェックするための公開APIはありませんが、System.getProperty( "os.name")のようなものを使用できます(if文を使用するなど)。

関連する問題