我有这个项目结构: 的 ProjectFolder / IosFolder,AndroidFolder,CommonFolder 现在Android应用程序使用其资源文件夹中的文件。 但我们决定为相同的文件制作Common文件夹。
你能帮我制作函数吗会将文件从 Common 文件夹中复制(这个文件夹在我的项目下,所以在Android Studio中我不会看到它)到android 应用程序构建之前的资源文件夹?
在Common文件夹中会有一些.json文件和字体文件。
据我了解,我需要在build.gradle文件中编写此函数 类似的东西:
@company
这是我的档案:
task copyFiles(type: Copy)
copyFiles {
description = 'Copy files'
from 'Common/'
into 'Android/{projectName}/app/src/main/assets'
}
你能告诉我在哪里可以看到Gradle Console中已执行方法的结果吗?
我需要使用哪条路径以及build.gradle文件在哪里放置此方法?
希望你能帮助我。
答案 0 :(得分:6)
您可以尝试这种配置:
gradle.projectsEvaluated {
preBuild.dependsOn(copyFiles)
}
更新: 复制任务可以为您执行许多命令。来自这里的文档是例子:
task anotherCopyTask(type: Copy) {
// Copy everything under src/main/webapp
from 'src/main/webapp'
// Copy a single file
from 'src/staging/index.html'
// Copy the output of a task
from copyTask
// Copy the output of a task using Task outputs explicitly.
from copyTaskWithPatterns.outputs
// Copy the contents of a Zip file
from zipTree('src/main/assets.zip')
// Determine the destination directory later
into { getDestDir() }
}
如果您只想从一个源目录复制到另一个源目录,则可以执行以下操作:
task copyFiles(type: Copy) {
from 'pathToMyAssets'
into 'AndroidStudioAssetsFolderPath'
}
更新在应用程序的build.gradle底部执行此操作:
task copyFiles(type: Copy) {
from 'Users/kostya/repo_amc_mobile_promo/Common/'
into 'Users/kostya/repo_amc_mobile_promo/Android/AMC_Mobile_Promo2/app/src/main/assets'
}
preBuild.dependsOn(copyFiles)
答案 1 :(得分:0)
根据documentation,这里是如何通过graddle复制文件:
task myCopyTask(type: Copy) {
from file("${buildDir}/reports/my-report.pdf")
into file("${buildDir}/toArchive")
}
要在构建之前执行此操作,您必须添加以下行:
preBuild.dependsOn(myCopyTask)
您可以使用可能使用某些project properties的absolute
或relative
路径。为了确保项目属性的路径,请不要犹豫,使用:
println file('${buildDir}')