首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨平台构建Android脚本

跨平台构建Android脚本
EN

Stack Overflow用户
提问于 2017-01-21 15:46:15
回答 1查看 426关注 0票数 2

我有一个build.gradle为我的安卓应用程序,然后一些helper.gradle文件为各种子任务。其中一些帮助任务调用shell脚本。因为这个应用程序是在专门的Linux和Mac机器上开发的,所以shell脚本运行得很好。

我最近在混合文件中添加了一台Windows开发机器,而gradle构建配置在调用shell脚本时失败了。

代码语言:javascript
复制
task helperTask1 << {
    exec {
        workingDir rootProject.getProjectDir()
        commandLine 'sh', './scripts/helperScript1.sh'
    }
}

总有一天,我会让Cygwin在Windows机器上运行,但是我的应用程序编译有什么选择呢?

  1. 是否有一种方法可以有效地在各自的平台上调用helperTask1_Linux和helperTask1_Windows任务?
  2. 是否有更多的" gradle“方式来调用shell脚本,以便我的gradle文件在更高的级别上定义步骤?
EN

回答 1

Stack Overflow用户

发布于 2017-01-21 15:55:38

我就是这样做的:

  1. 定义一个属性‘ant.connection.os’。属性的值取决于操作系统。
  2. 使用开关中的属性值来调用windows或linux脚本。
代码语言:javascript
复制
ant.condition(property: "os", value: "windows") { os(family: "windows") }
ant.condition(property: "os", value: "unix"   ) { os(family: "unix")    }

task myTask() {
    switch (ant.properties.os) {
        case 'windows':
            commandLine 'cmd', '/c', 'myscript.cmd'
            break;
        case 'unix':
            commandLine './myscript.sh'
            break;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41781258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档