【问题标题】:Using Travis CI with Android在 Android 中使用 Travis CI
【发布时间】:2016-04-09 20:02:20
【问题描述】:

我一直在查看Travis CI docs for Android,因此我可以学习如何开始将 Travis 用于我的 Android 库。但是,我不明白文档所说的很多内容......

到目前为止,我的理解是:

language: android  # this means the project will be built in an Android environment

android:
  components:
    - tools               # will be built with latest version of Android SDK tools
    - platform-tools      # ''
    - build-tools-23.0.1  # build tools version of my project
    - android-23          # Android SDK version of my project

Travis CI 文档还显示了可以使用的其他组件:

# Additional components
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- addon-google_apis-google-19

它提供了更完整的列表here

但是这些“附加组件”的作用/含义是什么?我猜extra-android-support 组件可能意味着该项目将使用 Android 支持库构建,但其他的呢? ?

我看过Travis tests for Gradle,但我看到其他项目使用script: ./gradlew checkscript: ./gradlew clean build checkscript: "./gradlew build",有些根本没有使用script这一切意味着什么?

【问题讨论】:

    标签: android github android-gradle-plugin travis-ci


    【解决方案1】:

    使用您的.travis.yml 文件,您正在配置一台机器来构建和运行您的代码。在此文件中,您必须指定所需的所有组件。

    该文档显示了所有已经可用(预安装)的 SDK 组件。您无需在 .travis.yml 文件中指定它们,除非您想强制重新安装此组件。

    相反,您必须指定未预安装的组件。
    例如,列表中只有build-tools 21.1.1。这是团队的决定,因为该组件的版本更新更加频繁。

    这些“附加组件”有什么作用/意义?

    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    

    这些是支持库存储库(与您必须使用 SDK 管理器更新的相同),gradle 从中下载添加到 build.gradle 文件的依赖项块中的支持库。

    要获取可用的确切组件名称和描述的列表,请运行命令android list sdk --no-ui --all --extended
    你会得到类似的东西:

    # Check Android SDK tools: http://developer.android.com/tools/sdk/tools-notes.html
    # Check Android SDK Platform-tools: http://developer.android.com/tools/revisions/platforms.html
    tools
    platform-tools
    
    # Check BuildTools: http://developer.android.com/tools/revisions/build-tools.html
    build-tools-23.0.1
    
    # The API to be used to compile
    # Check APIs: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
    
    android-23
    android-22
    android-21
    android-20
    android-19
    android-18
    android-17
    android-16
    ....
    
    # The system images if you need to run emulator during your tests
    
    sys-img-armeabi-v7a-android-23
    sys-img-x86-android-23
    ....
    
    # Google repository from which download the dependencies
    
    # Check extras: http://developer.android.com/sdk/installing/adding-packages.html#GetSupportLib
    extra-android-m2repository
    extra-android-support
    
    # Check more extras: http://developer.android.com/sdk/installing/adding-packages.html#GetGoogle
    extra-google-m2repository
    extra-google-google_play_services
    
    extra-google-admob_ads_sdk
    extra-google-analytics_sdk_v2
    extra-google-gcm
    extra-google-google_play_services_froyo
    .....
    
    # Source file
    source-23
    source-22
    source-21
    
    ...
    

    使用您的.travis.yml,您必须告诉 travis 如何检查您的构建是否成功。使用 script 块,您可以指定使用哪些命令来检查构建。
    如果您的项目在存储库根目录中有一个build.gradle 文件,Gradle 将用于构建它。这对你来说就足够了,这取决于你的项目。

    gradle 使用的默认命令是:

    ./gradlew build connectedCheck
    

    但您可以通过指定脚本块来覆盖它。

    更多信息here

    如果您想查看 travis-ci 中的输出,可以查看this

    【讨论】:

    • 惊人的答案,谢谢!只是几个问题:1)您提到了android list sdk --no-ui --all --extended 以获取所有组件的列表 - 我在哪里运行此命令(Windows cmd、Android Studio 中的终端或其他东西?); 2) extra-google-m2repositoryextra-android-m2repository 有什么区别? 3) 源文件是什么(source-23source-22 等)?再次感谢您提供很好解释的答案!
    • @FarbodSalamat-Zadeh 用一些信息更新了答案。 1)您可以在before_install: 块中的脚本中使用android list sdk 命令。 2)检查答案。第一个是 google play 服务库的 google 存储库,第二个是支持库(appcompat,v4)。您也可以在您的 sdk 文件夹 androidSdk/extras 中检查它。 3) sdk管理器中的android类的源文件。
    • before_install: 块中添加脚本后,我将如何查看结果? (我希望这不是一个愚蠢的问题......)
    • @FarbodSalamat-Zadeh 在您的 travis 机器中,在输出中。
    猜你喜欢
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2014-04-03
    相关资源
    最近更新 更多