我正在编写一个gradle任务,它应该执行一个java应用程序,但我无法获得我的Android项目的类路径。
我的gradle任务:
task helloWorld(type: JavaExec) {
classpath = buildscript.configurations.classpath;
main = "com.test.HelloWorld";
}
这不管用。
如何获取类路径(包括所有类和依赖项)?
我已经找到了一个解决方案的源文件夹和库。但是我仍然想念android. jar。这个问题还有另一个问题:为自己编写的Java任务找到android.jar(在gradle中)
class JavaTask extends JavaExec {
@Override
void exec() {
List<String> classpaths = new ArrayList<>(Arrays.asList(getClasspath().getAsPath().split(";")));
project.android.libraryVariants.all { variant ->
classpaths.add(variant.javaCompile.destinationDir.getPath());
}
org.gradle.api.artifacts.Configuration config = project.configurations.getByName("compile");
for (String path : config.getAsPath().split(";")) {
classpaths.add(path);
}
setClasspath(project.files(classpaths.toArray(new String[classpaths.size()])));
super.exec();
}
}
请查看本题第二个答案:https://stackoverflow.com/a/40515402/3130610
它起作用了。