2014-10-11 3 views
3

У меня есть сценарий сборки Gradle, который должен создать экземпляр класса Java в Задаче и вызвать метод для созданного объекта. В настоящее время у меня есть следующие:Использование Java-класса в скрипте сборки Gradle

apply plugin: 'java' 

dependencies { 
    compile files("libs/some.library.jar") 
} 

task A << { 

    def obj = new some.library.TestClass() 
    obj.doSomething() 

} 

Проблема заключается в том, что класс some.library.TestClass() не найден. Я прочитал this article о том, как использовать классы Groovy в Gradle, но мне нужен мой Java-класс из внешнего JAR-файла. Как добавить банку в источник сборки? Кажется, что блок dependencies не делает того, что я ожидаю от него. Может ли кто-нибудь дать мне подсказку в правильном направлении?

+0

Возможный дубликат [Gradle buildscript dependencies] (http://stackoverflow.com/questions/13923766/gradle-buildscript-dependencies) – Radim

ответ

5

Зависимость compile files("libs/some.library.jar") добавлена ​​как зависимость от проекта не как сама зависимость сценария. Что вам нужно сделать, так это добавить эту зависимость в область видимости сценария classpath.

apply plugin: 'java' 

buildscript { 
    dependencies { 
     classpath files("libs/some.library.jar") 
    } 
} 

task A << { 
    def obj = new some.library.TestClass() 
    obj.doSomething() 
} 

Теперь это должно сработать.

+0

Это также работает в Android Studio, хотя вам не нужна строка «применить плагин» , который будет жаловаться на конфликты с плагином android, а «buildscript» должен быть все в нижнем регистре. – dwxw

+0

Не работает, говоря: 'Не удалось найти метод buildScript() ...' –

+0

@SuzanCioc, попробуйте все строчные буквы. – Opal

Смежные вопросы