Apply from classes availability for buildscript classpath


(nagendra.raja) #1

When build.gradle has contents like this

apply from: ‘fnd/cmn/bu/BUConsts.gradle’; apply from: ‘fnd/cmn/bu/uts/tng/TNGConsts.gradle’;

I see BUConsts and TNGConsts getting compiled.

However, I am not where these class files get written to… Once this is written to some directory, would such classes available to script without explicitly adding them like this…

buildscript

{

dependencies

{

classpath files([“C:\temp\out\production\lapos”]);

}

}

Regards, Raja Nagendra Kumar, C.T.O www.tejasoft.com


(Peter Niederwieser) #2

No, this is not supported. You can use classes

  • declared in a parent build script * declared in the ‘buildSrc’ project * coming from an external Jar/class file and added to ‘buildscript.classpath’

(Vasily Karyaev) #3

You can use classes > declared in a parent build script

Can you provide an example of this?

I tried adding a class declaration to the root build.gradle and then using the class in a subproject build.gradle. I also tried many other combinations, neither worked. It seems I can use classes declared in the same gradle file only (or in buildSrc of course, but I avoid using this option for now).


(Peter Niederwieser) #4

To use a class declared in a parent script, you have to use some tricks, like assigning the class object to an extra variable, or sharing a factory method rather then the class itself. In most cases it’s better to use ‘buildSrc’.