blob: b2f81011d5dc69633f77bcd8fbe91ac8639e6f5d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
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 [group:artifact:version...]
This script downloads the specified artifacts copies them into the appropriate subdirectory of $destRepo/prebuilts/"
exit 1
}
inputRepo=m2repository
stageRepo=m2staged
destAndroidRepo=$destRepo/prebuilts/gradle-plugin
destThirdPartyRepo=$destRepo/prebuilts/tools/common/m2/repository
function createPom() {
pomPath="$PWD/pom.xml"
echo creating $pomPath
pomPrefix='<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.android.build</groupId>
<artifactId>m2repository</artifactId>
<version>1.0</version>
<dependencies>
'
pomSuffix='
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<includeScope>runtime</includeScope>
<addParentPoms>true</addParentPoms>
<copyPom>true</copyPom>
<useRepositoryLayout>true</useRepositoryLayout>
<outputDirectory>m2repository</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
'
pomDependencies=""
while [ "$1" != "" ]; do
echo importing $1
dependencyText="$(echo $1 | sed 's|\([^:]*\):\([^:]*\):\([^:]*\)|\n <dependency>\n <groupId>\1</groupId>\n <artifactId>\2</artifactId>\n <version>\3</version>\n </dependency>|')"
pomDependencies="${pomDependencies}${dependencyText}"
shift
done
if [ "${pomDependencies}" == "" ]; then
usage
fi
echo "${pomPrefix}${pomDependencies}${pomSuffix}" > $pomPath
echo done creating $pomPath
}
function downloadDependencies() {
echo downloading and/or copying dependencies to $inputRepo
rm -rf $inputRepo
mvn dependency:copy-dependencies
#mvn dependency:copy-dependencies -Dclassifier=javadoc
mvn dependency:copy-dependencies -Dclassifier=sources
echo done placing dependencies in $inputRepo
}
# generates an appropriately formatted repository for merging into existing repositories,
# by computing artifact metadata
function stageRepo() {
echo staging to $stageRepo
rm -rf $stageRepo
for f in $(find $inputRepo -type f | grep -v '\.sha1$' | grep -v '\.md5'); do
md5=$(md5sum $f | sed 's/ .*//')
sha1=$(sha1sum $f | sed 's/ .*//')
relPath=$(echo $f | sed "s|$inputRepo/||")
relDir=$(dirname $relPath)
fileName=$(basename $relPath)
writeChecksums="true"
destDir="$stageRepo/$relDir"
destFile="$stageRepo/$relPath"
if [ "$fileName" == "maven-metadata-local.xml" ]; then
writeChecksums="false"
destFile="$destDir/maven-metadata.xml"
fi
mkdir -p $destDir
if [ "$writeChecksums" == "true" ]; then
echo -n $md5 > "${destFile}.md5"
echo -n $sha1 > "${destFile}.sha1"
fi
cp $f $destFile
done
echo done staging to $stageRepo
}
function announceCopy() {
input=$1
output=$2
echo copying "$input" to "$output"
cp -rT $input $output
}
function export() {
echo exporting
announceCopy $stageRepo/com/android $destAndroidRepo/com/android
rm -rf $stageRepo/com/android
announceCopy $stageRepo $destThirdPartyRepo
echo done exporting
}
function main() {
createPom "$@"
downloadDependencies
stageRepo
export
}
main "$@"
|