我正在编写一个gradle任务,它应该执行一个java应用程序,但是我无法获得我的Android项目的类路径。
我的gradle任务:
task helloWorld(type: JavaExec) {
classpath = buildscript.configurations.classpath;
main = "com.test.HelloWorld";
}
这不起作用。
如何获取类路径(包括所有类和依赖项)?
答案 0 :(得分:1)
我找到了源文件夹和库的解决方案。 但我仍然想念android.jar。 这个问题还有另一个问题:Finding android.jar for a own written Java task (in 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();
}
}
答案 1 :(得分:0)
请检查此问题的第二个答案: https://stackoverflow.com/a/40515402/3130610
它可以解决问题。