代码之家  ›  专栏  ›  技术社区  ›  JJD

如何从内部版本中提取CompileSDK版本。要在中使用的渐变。特拉维斯。yml?

  •  0
  • JJD  · 技术社区  · 7 年前

    我想自动提取 compileSdkVersion buildToolsVersion 从…起 应用程序/内部版本。格拉德尔 :

    android {
        compileSdkVersion 24
        buildToolsVersion "27.0.3"
    

    提取的值应替换中的硬编码值 .travis.yml :

    env:
      global:
        - ANDROID_API_LEVEL=24
        - ANDROID_BUILD_TOOLS_VERSION=27.0.3
    

    我希望避免两次定义值,因为每次值更改时都必须记住更新这两个值。

    中间状态:CompileSDK版本

    下面的行用于抽壳 24 从…起 应用程序/内部版本。格拉德尔 :

    $ grep -H compileSdkVersion app/build.gradle | grep -o "[0-9]\+
    

    在Travis CI上运行相同的操作,如下所示:

    env:
      global:
        - ANDROID_API_LEVEL=(`grep -H compileSdkVersion app/build.gradle | grep -o "[0-9]\+"`)
        - ANDROID_BUILD_TOOLS_VERSION=27.0.3
    

    导致以下错误:

    $导出ANDROID\u API\u级别=( grep -H compileSdkVersion app/build.gradle | grep -o "[0-9]\+"
    /家/特拉维斯/。travis/job\u阶段:评估:第57行:查找匹配“”时意外的EOF

    中间状态:buildToolsVersion

    正在提取 BuildTools版本 仍然不能完美地工作。

    $ grep -H buildToolsVersion app/build.gradle | grep -o '[\.0-9]\+' 
    


    27.0.3

    1 回复  |  直到 7 年前
        1
  •  0
  •   JJD    7 年前

    以下内容 grep 命令提取 compileSdkVersion buildToolsVersion 特拉维斯CI 环境:

    env:
      global:
        - ANDROID_API_LEVEL=`grep -H compileSdkVersion app/build.gradle | grep -Po "\d+"`
        - ANDROID_BUILD_TOOLS_VERSION=`grep -H buildToolsVersion app/build.gradle | grep -Po "\d+.\d+.\d+"`