set -e destRepo="$(cd $(dirname $0)/../../.. && pwd)" tempDir="/tmp/import-temp-work" rm -rf $tempDir mkdir -p $tempDir cd $tempDir function usage() { echo "Usage: $0 group:artifact:version[:classifier][@extension] [group:artifact:version[:classifier][@extension]...] This script downloads the given artifacts and confirms that their dependencies can be resolved successfully by maven" exit 1 } internalAndroidRepo=$destRepo/prebuilts/androidx/internal # usage: downloadArtifacts "$group:$artifact:$version[:classifier][@extension]..." function downloadArtifacts() { if [ "$1" == "" ]; then usage fi echo downloading dependencies while [ "$1" != "" ]; do echo importing $1 IFS=@ read -r dependency extension <<< "$1" IFS=: read -ra FIELDS <<< "${dependency}" groupId="${FIELDS[0]}" artifactId="${FIELDS[1]}" version="${FIELDS[2]}" classifier="${FIELDS[3]}" # download the actual artifact downloadArtifact "$groupId" "$artifactId" "$version" "$classifier" "$extension" # go to next artifact shift done echo done downloading dependencies } # usage: downloadArtifact "$group" "$artifact" "$version" "$classifier" "$extension" function downloadArtifact() { pomPath="$PWD/pom.xml" echo creating $pomPath pomPrefix=' 4.0.0 com.google.android.build m2repository 1.0 androidx-local-internal Androidx Local Internal file://'"${internalAndroidRepo}"'/ jcenter JCenter https://jcenter.bintray.com gradleplugins Gradle Plugins https://plugins.gradle.org/m2/ ' pomSuffix=' org.apache.maven.plugins maven-dependency-plugin 2.8 default-cli runtime true true true m2repository ' groupId="$1" artifactId="$2" version="$3" classifier="$4" extension="$5" dependencyText=$(echo -e "\n \n ${groupId}\n ${artifactId}\n ${version}") [ $classifier ] && dependencyText+=$(echo -e "\n ${classifier}") [ $extension ] && dependencyText+=$(echo -e "\n ${extension}") dependencyText+=$(echo -e "\n ") echo "${pomPrefix}${dependencyText}${pomSuffix}" > $pomPath echo done creating $pomPath mvn -f "$pomPath" dependency:resolve } function confirmMavenRepoEmpty() { repoPath=~/.m2/repository if stat $repoPath >/dev/null 2>/dev/null; then echo "Must do: rm -rf $repoPath before running this script to be sure that its results are correct" exit 1 fi } function main() { confirmMavenRepoEmpty downloadArtifacts "$@" } main "$@"