gpt4 book ai didi

android - Gradle脚本,如何在编译部署后立即执行任务(文件复制)

转载 作者:太空狗 更新时间:2023-10-29 14:03:41 26 4
gpt4 key购买 nike

以下是我的 Android 应用后端 build.gradle。构建和部署后,我想将一些休眠文件复制到 build/exploded-app/下的文件夹中。我如何在部署后立即从脚本执行 cpyHibernate 任务,而不是从终端运行 gradlew cpyHibernate?

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.google.appengine:gradle-appengine-plugin:1.9.18'
}
}

repositories {
jcenter();
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

dependencies {
appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.18'
compile 'com.google.appengine:appengine-endpoints:1.9.18'
compile 'com.google.appengine:appengine-endpoints-deps:1.9.18'
compile 'com.googlecode.objectify:objectify:5.1.5'
compile 'javax.servlet:servlet-api:2.5'
compile 'hibernate:hibernate:3.1rc2'
compile 'mysql:mysql-connector-java:5.1.37'
}

appengine {
downloadSdk = true
appcfg {
oauth2 = true
}
endpoints {
getClientLibsOnBuild = true
getDiscoveryDocsOnBuild = true
}
}

task cpyHibernate(type: Copy) {
from 'src/main/java/hibernate.cfg.xml'
into 'build/exploded-app/WEB-INF/classes/com/example/myapplication/backend/hbm/'
}

谢谢

最佳答案

你可以让一些任务完成另一个任务,在这种情况下,这个任务只有在另一个任务被调用时才会运行,紧随其后。您可以在官方user guide中了解它。 .这可以这样做:

task cpyHibernate(type: Copy) {
doFirst {
//check anothe task status and skip this one if it didn't actually work
if (!tasks.getByName("deploy").getState().didWork) {
throw new StopExecutionException();
}
}
from 'src/main/java/hibernate.cfg.xml'
into 'build/exploded-app/WEB-INF/classes/com/example/myapplication/backend/hbm/'
}

deploy.finalizedBy cpyHibernate

您只需要知道部署任务名称即可。在上面的例子中,假设它的名字是deploy。请注意,您的 cpyHibernate 已修改,以检查 deploy 任务是否确实做了一些工作并且不是最新的。如果您不需要它,只需从中删除 doFirst 部分即可。

关于android - Gradle脚本,如何在编译部署后立即执行任务(文件复制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089467/

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