当前位置: 首页 > 知识库问答 >
问题:

如何改进将输出APK从Android项目复制到新文件夹的任务?

李勇
2023-03-14

所以我想创建一个构建后挂钩,将编译后的APK文件复制到一个新文件夹中,并为其命名,其中包含版本代码。这是我到目前为止得到的:

task copyToPublishFolderDebug(type: Copy, dependsOn: assembleDebug ) {
    def targetFile = "MyApp-debug-" + android.defaultConfig.versionCode + ".apk"
    from ('build/outputs/apk/MyApp-debug.apk') {
        rename 'MyApp-debug.apk', targetFileName
    }
    into '../build/publish/' 
}
assembleDebug.finalizedBy copyToPublishFolderDebug

这是可行的,但我认为可以改进

>

我必须将此任务复制粘贴到发布版本(以及我创建的任何其他构建类型)的90%相同的任务中。有什么方法可以简单地干燥它吗?

编辑:误解问题#1,认为它是一个文件而不是一个目录。复制操作已正确完成,但它会创建文件夹且不会重命名

edit2:了解如何重命名,这样就不再是问题了

共有1个答案

仉宪
2023-03-14

似乎您可以使用外部属性:

ext.output = "Initial Value"

task firstTask() << {
    output = "Output";
}

task secondTask(dependsOn: firstTask) << {
    println output;
}

将产生:输出

如果您有多个汇编类型的任务,并且每个任务都相应地设置“输出”,那么您的重复不再是多个任务,而是多个集合语句。

 类似资料:
  • 我不熟悉scala和Sbt。我正在尝试使用JQuery i18n插件实现国际化。我的项目文件夹结构包含消息。属性文件位于/src/main/resources/i18n文件夹中,该文件将在sbt编译/打包期间复制到classes文件夹。只有当文件位于webapp文件夹下时,Jquery才能访问。有没有办法在生成中创建任务。sbt将属性文件从src/main/resources文件夹复制到webap

  • 我需要将我的Android Studio项目导出为大学项目的APK。这样做的正确程序是什么?

  • 问题内容: 我想在应用程序的第一次运行中将一个很大的目录从我的应用程序的Assets文件夹复制到data文件夹。我怎么做?我已经尝试过一些示例,但是没有用,所以我什么都没有。我的目标是Android 4.2。 谢谢,Yannik 问题答案: 尝试使用您的Application实例的以下代码(您应该在清单中编写该类):该代码将资产/文件文件夹的内容复制到应用程序的缓存文件夹中(您可以将其他路径放在c

  • 在运行之前,我添加了所需的库(selendroid-client-0.17.0.jar和selendroid-standalone-0.17.0-with-dependencies.jar),并且通过cmd启动了服务器。但是,每次运行时都会出现以下错误: 我还没有在网上找到任何关于如何修复它的建议。希望你们能帮忙。谢谢! 编辑:这里是我的build.gradle文件:

  • 伙计们! 我是TestNG的新手,我正在用Maven(Surefire插件)和Eclipse进行尝试。 当我的测试由Maven运行时,它的报告会按预期放在target/surefire-reports上,但同样的测试由Eclipse TestNG插件运行时,我希望它们也放在target子文件夹中(因此,由clean Maven goal清理,由git忽略,这并不是为了尊重Maven文件夹组织),但

  • 我有一个Windows文件夹结构和文件,如下所示 c:\源文件\file1.txt c:\源文件夹\subfolder1\file2.txt c:\源文件夹\子文件夹2\file3.txt 我想复制所有文件到目标文件夹,如下所示 c:\DestinationFile\file1.txt c:\DestinationFile\file2.txt c:\DestinationFile\file3.tx