java - 在gradle中获取Android项目的classpath

标签 java android android-studio gradle build

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

我的gradle任务:

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

这不起作用。

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

最佳答案

我找到了源文件夹和库的解决方案。 但我仍然怀念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();
    }
}

关于java - 在gradle中获取Android项目的classpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963574/

相关文章:

java - 如何使用Sockets TCP在java和android之间正确传递对象?

java - hibernate 中返回日期错误

android - 如何在android上等待异步方法

android - Volley 调用后如何更新 recyclerview 适配器以获取更改的数据

即使在正确设置 abiFilters 之后,Android Studio 也会忽略 ndk-build 的 APP_ABI

java - 无法从 android.app.Application 转换为自定义类型

java - jhipster:在 PROD 模式下运行时如何避免数据库更新?

android - 为什么来自 Google map 的 Geocoder 返回日文字符?

java - 为什么我的 Android 应用程序在启动新 Activity 时崩溃?

android - 从 Android Studio 成功运行 appium 代码?