是否可以在调用
之前重写执行任务gradle build
像预编译一样的东西。有人请帮忙。是这样的东西,怎么样?
答案 0 :(得分:60)
你可以这样做:
task build << {
println 'build'
}
task preBuild << {
println 'do it before build'
}
build.dependsOn preBuild
由于该任务preBuild
将在build
任务之前自动调用。
如果您想在配置阶段运行preBuild
(前一个示例在preBuild
阶段运行execution
),您可以这样做:
task build << {
println 'build'
}
build.doFirst {
println 'do it before build'
}
有关gradle构建生命周期的更多信息,请参阅http://www.gradle.org/docs/current/userguide/build_lifecycle.html。
答案 1 :(得分:28)
对于那些想知道如何在Android项目中执行此操作的人来说,这对我有用:
task myTask << {
println "here's a task"
}
preBuild.dependsOn myTask
答案 2 :(得分:11)
还有一种方法可以做到这一点
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '123456789'); // Insert your pixel ID here.
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=123456789&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
答案 3 :(得分:0)
如果已经定义了要运行的任务(例如publishToMavenLocal
),则可以使用以下命令将其添加到gradle build
任务中:
build.dependsOn publishToMavenLocal
答案 4 :(得分:0)
在Gradle 5.4.x中
// File: app/build.gradle
// See: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Exec.html
task ruby(type:Exec) {
workingDir '../'
executable = '/usr/bin/env'
args = ["ruby", "--version"]
}
preBuild.dependsOn ruby
答案 5 :(得分:0)
在Gradle 5中删除了左移运算符<<
。
在我的情况下,我有一个使用Java子项目的Android项目,并且有效:
task myTask {
doLast {
println 'do it before build'
}
}
assemble.dependsOn myTask
关于最初的问题,现在应该是语法:
task myTask {
doLast {
println 'do it before build'
}
}
build.dependsOn myTask
// or for Android
preBuild.dependsOn myTask