提问者:小点点

在gradle中获取Android项目的类路径


我正在编写一个gradle任务,它应该执行一个java应用程序,但我无法获得我的Android项目的类路径。

我的gradle任务:

task helloWorld(type: JavaExec) {
  classpath = buildscript.configurations.classpath;
  main = "com.test.HelloWorld";
}

这不管用。

如何获取类路径(包括所有类和依赖项)?


共2个答案

匿名用户

我已经找到了一个解决方案的源文件夹和库。但是我仍然想念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

它起作用了。