在gradle中

时间:2016-06-22 09:14:37

标签: java android android-studio gradle build

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

我的gradle任务:

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

这不起作用。

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

2 个答案:

答案 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

它可以解决问题。