我有一个非常简单的构建。gradle文件包含以下内容:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.1'
}
}
apply plugin: 'android'
android {
buildToolsVersion "17.0.0"
compileSdkVersion 17
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
task generateSources {
doFirst {
def script = "python GenerateSources.py".execute()
script.in.eachLine {line -> println line}
script.err.eachLine {line -> println "ERROR: " + line}
script.waitFor()
}
}
我想要的是在java编译开始之前运行generateSources任务。我找到了几种解决方法,比如compileJava。dependsOn(“generateSources”),但不幸的是,它们给出了一个错误:
A problem occurred evaluating root project 'Android'.
> Could not find property 'compileJava' on root project 'Android'.
我不认识Gradle,也不明白这个代码出了什么问题。所以我想知道如何修复这个错误。
您可以在终端运行任务中看到任务执行,例如gradle assemble。试试这个,它实际上比任何东西都要早。
android {
...
gradle.projectsEvaluated {
preBuild.dependsOn(generateSources)
}
...
}
编辑,这可能在Android Studio中不起作用,因为Android Gradle DSL没有项目评估方法。
在Android上编译Java之前运行任务的正确方法是使每个变体的编译任务取决于您的任务。
afterEvaluate {
android.applicationVariants.all { variant ->
variant.javaCompiler.dependsOn(generateSources)
}
}
显然,android插件并没有添加compileJava任务(就像java插件一样)。您可以检查哪些任务可以与gradle tasks(all)一起使用,并为您的(否则是正确的)依赖关系声明选择正确的任务。
编辑:
显然,android
插件以无法像往常一样急切访问的方式推迟任务的创建。克服这个问题的一种方法是将访问推迟到配置阶段结束:
gradle.projectsEvaluated {
compileJava.dependsOn(generateSources)
}
很可能有一种更惯用的方法来解决您的用例,但快速浏览Android插件文档时我找不到。
我想通过Gradle运行脚本来运行任务,在编译之前运行所有任务,以自动生成运行Android应用程序的工件。 任务: 我想运行一个<代码>。cmd生成工件的文件 将生成的工件复制到Android资产文件夹 这是build.gradle模块: 因此,我想在
所以我试着在https://grpc.io/docs/tutorials/basic/java.html#generating-客户端和服务器代码,但我在使用grpc插件和protoc编译器进行编译时遇到问题。我已经设置了pom。xml与插件(我认为)正确结合,但编译器不会生成指南所需的文件(即RouteGuideGrpc.java)。 我目前正在编译。使用“mvn protobuf:编译”的pr
我的gradle项目中有一个java主程序,我可以通过命令行使用gradle应用程序插件运行任务--args param new从gradle 4.9开始运行,如下所示: 我想在IntelliJ IDEA CE 2018.1中为同样的配置创建一个运行配置。 我在Run/Debug配置dilog中将任务字段指定为 当我运行这个运行配置时,我得到一个错误: 如何通过运行配置使此工作?
1. YodaOS Universal 如何配置系统和应用 1.1. 目录 1.1.1. 一.YODAOS完整体验 1.1.2. 定制系统和应用 1.1. 目录 YODAOS 完整体验 如何定制化系统和应用 1.1.1. 一.YODAOS完整体验 下载代码 Yodaos使用git作为源代码管理工具,用Repo 命令行工具管理多个git代码仓库,下载代码时需要用户注册成为Rokid 平台开发者。 注
问题内容: 我有一个文件和。 当我进行调试构建时,我得到: 如何将添加到基础任务?关于Java编译选项的Gradle插件用户指南无济于事。 问题答案: 我根据有关操作任务的Gradle插件用户指南和有关JavaCompile的Gradle DSL文档 找到了以下解决方案: 添加到: 应用程序变体在Gradle的配置阶段,所需的任务也不存在,因此我在执行阶段进行了修改。
22.11.编译 java java 插件为项目的每一个 source set 增加了一个 JavaCompile 实例, 最常见的配置选项如下所示: 表22.13.java 插件-编译配置 任务属性 类型 默认值 classpath FileCollection sourceSet.compileClasspath source FileTree,可以在Section 15.6, “Copyin