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 "$@"