Не удалось выполнить задачу «: app: androidDependencies» в Circle CI, но не локально - PullRequest
0 голосов
/ 16 апреля 2020

Обратите внимание, что я также разместил этот вопрос на дискуссионном форуме Circle CI , поэтому я хотел бы получить некоторую обратную связь, касающуюся моей среды Gradle (т.е. загрузки зависимостей из Maven на основе типа / варианта сборки) или, черт возьми, если вы можете помочь мне в этом вопросе в целом!

Почему-то я не могу получить зависимости (в данном случае Square Reader SDK, и да, я Команда Square подтвердила, что вместо jar из Maven следует загружать только файлы aar - обратите внимание на ошибки в нижней части этого поста - так, чтобы они не заканчивались) для загрузки на Circle, в то время как Gradle собирался собрать и выполнение задачи ./gradlew androidDependencies отлично работает локально на моей машине с использованием Android Studio. Я подтвердил те же результаты с другими моими коллегами.

На данный момент Gradle, очевидно, может быть проблемой здесь, когда нам нужно выяснить, как получить Gradle через Circle in-syn c с нашей местной средой. , И нет, обновление и плагина Android Gradle и версии Gradle постепенно не работало (т.е. с 3.4.1 до 3.5.3 для версии Android Gradle и с 5.1.1 до 5.4.1 для версии Gradle): https://developer.android.com/studio/releases/gradle-plugin#updating -gradle . Поэтому мы склонны сохранять версии как есть, поскольку все уже работает локально.

Вот соответствующие части файла config.yml:

version: 2
jobs:
  build:
    working_directory: ~/code
    docker:
      - image: circleci/android:api-28
    environment:
      GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -XX:ParallelGCThreads=2 -XX:ConcGCThreads=2 -XX:ParallelGCThreads=2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=2"'
      _JAVA_OPTIONS: "-Xmx2048m -XX:ParallelGCThreads=2 -XX:ConcGCThreads=2 -XX:ParallelGCThreads=2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=2"
      TZ: "/usr/share/zoneinfo/America/Indianapolis"
    steps:
      - checkout
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - run:
          name: Download Dependencies
          command: ./gradlew androidDependencies -PsquareReaderSdkPasswordDev=$SQUARE_READER_SDK_REPO_PW_DEV -PsquareReaderSdkPasswordProd=$SQUARE_READER_SDK_REPO_PW_PROD -PnexusUsername=$NEXUS_USER -PnexusPassword=$NEXUS_PW -PdisablePreDex=true -PdexJavaMaxHeapSize=512m -PdexMaxProcessCount=1 --no-daemon --max-workers=1
      - save_cache:
          paths:
            - ~/.gradle
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}

...

Вот соответствующие журналы сборки Circle для шага «Загрузка зависимостей», описанного ниже, и обратите внимание, что файл jar пытается получить файл, хотя aar - единственный файл, доступный на Maven :

#!/bin/bash -eo pipefail ./gradlew androidDependencies -PsquareReaderSdkPasswordDev=$SQUARE_READER_SDK_REPO_PW_DEV -PsquareReaderSdkPasswordProd=$SQUARE_READER_SDK_REPO_PW_PROD -PnexusUsername=$NEXUS_USER -PnexusPassword=$NEXUS_PW -PdisablePreDex=true -PdexJavaMaxHeapSize=512m -PdexMaxProcessCount=1 --no-daemon --max-workers=1

Picked up _JAVA_OPTIONS: -Xmx2048m -XX:ParallelGCThreads=2 -XX:ConcGCThreads=2 -XX:ParallelGCThreads=2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=2 
Downloading https://services.gradle.org/distributions/gradle-5.1.1-all.zip......
...
Unzipping /home/circleci/.gradle/wrapper/dists/gradle-5.1.1-all/4roc7ipeffh0uifn0m8u5ua5qc/gradle-5.1.1-all.zip to /home/circleci/.gradle/wrapper/dists/gradle-5.1.1-all/4roc7ipeffh0uifn0m8u5ua5qc
Set executable permissions for: /home/circleci/.gradle/wrapper/dists/gradle-5.1.1-all/4roc7ipeffh0uifn0m8u5ua5qc/gradle-5.1.1/bin/gradle

Welcome to Gradle 5.1.1!

Here are the highlights of this release:
 - Control which dependencies can be retrieved from which repositories
 - Production-ready configuration avoidance APIs

For more details see https://docs.gradle.org/5.1.1/release-notes.html

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/5.1.1/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing

...

> Task :app:androidDependencies
debug

> Task :app:androidDependencies FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:androidDependencies'.
> Could not resolve all artifacts for configuration ':app:debugCompileClasspath'.
   > Could not find reader-sdk-sq0idp-T4SClu2rWV2AcYcEiHALXg.jar (com.squareup.sdk.reader:reader-sdk-sq0idp-T4SClu2rWV2AcYcEiHALXg:1.3.6).
     Searched in the following locations:
         https://sdk.squareup.com/android/com/squareup/sdk/reader/reader-sdk-sq0idp-T4SClu2rWV2AcYcEiHALXg/1.3.6/reader-sdk-sq0idp-T4SClu2rWV2AcYcEiHALXg-1.3.6.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 3m 4s
1 actionable task: 1 executed

Exited with code exit status 1

root уровень файла build.gradle Android Версия плагина Gradle:

classpath 'com.android.tools.build:gradle:3.4.1'

... и версия Gradle из файла gradle-wrapper.properties:

#Tue Apr 14 15:24:05 EDT 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

Вот соответствующие части файла build.gradle уровня app (и обратите внимание на соответствующие зависимости, загружаемые из Maven в зависимости от типа сборки - в данном случае - debug / dev и prod), и, пожалуйста, дайте мне знать, если что-то выглядит неправильно) :

...

final SQUARE_READER_SDK_APP_ID_DEV = 'sq0idp-T4SClu2rWV2AcYcEiHALXg'
final SQUARE_READER_SDK_APP_ID_PROD = 'sq0idp-cyEZl-H328bxzEh0E4tq5w'
final SQUARE_READER_SDK_VERSION = "1.3.6"

...

buildTypes {
    debug {
        ...

        repositories {
            maven {
                url "https://sdk.squareup.com/android"
                credentials {
                    username SQUARE_READER_SDK_APP_ID_DEV
                    // Set as a property from command
                    password squareReaderSdkPasswordDev
                }
            }
        }

    }
    release {
        ... 

        repositories {
            maven {
                url "https://sdk.squareup.com/android"
                credentials {
                    username SQUARE_READER_SDK_APP_ID_PROD
                    // Set as a property from command
                    password squareReaderSdkPasswordProd
                }
            }
        }
    }
}

...

dependencies { 
    ...

    debugImplementation "com.squareup.sdk.reader:reader-sdk-$SQUARE_READER_SDK_APP_ID_DEV:$SQUARE_READER_SDK_VERSION"
    releaseImplementation "com.squareup.sdk.reader:reader-sdk-$SQUARE_READER_SDK_APP_ID_PROD:$SQUARE_READER_SDK_VERSION"
    runtimeOnly "com.squareup.sdk.reader:reader-sdk-internals:$SQUARE_READER_SDK_VERSION"

    ...
}

...
...