2014-10-11 23 views
3

我有一個Gradle構建腳本,它必須在Task中實例化一個Java類,並在創建的對象上調用一個方法。目前,我有以下內容:在Gradle構建腳本中使用Java類

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關於如何在Gradle中使用Groovy類,但是我需要我的Java類來自外部JAR文件。我如何將jar添加到構建源?看起來dependencies塊沒有做我期望的功能。任何人都可以給我一個正確的方向提示嗎?

+0

[Gradle buildscript dependencies]可能的重複(http://stackoverflow.com/questions/13923766/gradle-buildscript-dependencies) – Radim 2014-10-11 12:51:11

回答

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,雖然你不需要'apply plugin'這一行,它會抱怨與android插件衝突,'buildscript'需要全部小寫。 – dwxw 2015-08-11 09:33:24

+0

不工作說:'找不到方法buildScript()...' – 2016-03-15 11:47:47

+0

@SuzanCioc,嘗試全部小寫。 – Opal 2016-03-15 12:53:36