Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use Java class in Gradle build script

I have a Gradle build script which has to instantiate a Java class in a Task and call a method on the created object. Currently, I have the following:

apply plugin: 'java'

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

task A << {

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

}

The problem is that the class some.library.TestClass() is not found. I read this article about how to use Groovy classes in Gradle, but I need my Java class to come from an external JAR file. How can I add a jar to the build source? It seems that the dependencies block doesnt do what I expect it to do. Can anyone give me a hint in the right direction?

like image 210
WeSt Avatar asked Oct 11 '14 12:10

WeSt


1 Answers

The dependency compile files("libs/some.library.jar") is added as a project dependency not as the script dependency itself. What You need to do is to add this dependency in script's classpath scope.

apply plugin: 'java'

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

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

Now it should work.

like image 88
Opal Avatar answered Sep 21 '22 17:09

Opal