gpt4 book ai didi

android - 如何使 Android Gradle 构建依赖于提供 jar 文件的简单(非 android 库,非 java)任务?

转载 作者:搜寻专家 更新时间:2023-11-01 08:49:15 28 4
gpt4 key购买 nike

我有一个命令行程序,它根据一组源文件生成一个我想在我的 Android gradle 构建 (A) 中使用的 jar 文件。这个命令行程序只是将一个 jar 文件存储在磁盘上的一个目录中。

我如何创建一个新的 gradle 项目 (B) 来运行我的命令行程序(在 gradle 多项目设置中),Android Gradle 项目 (A) 将依赖于此:换句话说,如果源B改变,应该重建!

注意:

项目B既不是Android库项目也不是java项目。它只是通过命令行运行一个程序,该程序恰好在文件系统上存储一个 jar 文件。

最佳答案

您可以通过在项目 B 中创建自己的自定义任务来执行生成 JAR 的程序来执行此操作。请务必正确声明您的输入/输出,以便 Gradle 知道如何处理任务的依赖项:

task buildProjB {
inputs.file file('my_source_file.name')
ext.dest = new File(buildDir, "libs")
outputs.dir ext.dest

doLast {
// Run your program and put output in "libs" subdir
}
}

tasks.whenTaskAdded { theTask ->
if (theTask.name.contains("assemble")) {
theTask.dependsOn "buildProjB"
}
}

请注意,buildProjB 任务“ Hook ”到任何 assemble 任务。您可能需要执行此操作或执行其中一项 build 任务,以便将其正确构建为正常 Android 应用程序构建的一部分。

在您的项目 A settings.gradle 中,使项目 B 成为构建的一部分:

include ':projectA', ':projectB'

在你的项目A的build.gradle文件中,将项目B设为依赖:

dependencies {
...
compile project(':projectB')
}

这是假设您在顶级 Android Studio 项目下有项目 B(Android Studio 术语中的模块),因此与项目 A 处于同一级别。

关于android - 如何使 Android Gradle 构建依赖于提供 jar 文件的简单(非 android 库,非 java)任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25202373/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com