-
Notifications
You must be signed in to change notification settings - Fork 5
/
build-dependencies.xml
161 lines (140 loc) · 5.46 KB
/
build-dependencies.xml
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project>
<project name="dependencies">
<!-- Folders and File Names -->
<property name="dependencies.dir" value="deps" />
<!-- Git Macros -->
<macrodef name="git">
<attribute name="command" />
<attribute name="dir" default="" />
<element name="args" optional="true" />
<sequential>
<echo message="git @{command}" />
<exec executable="git" dir="@{dir}">
<arg value="@{command}" />
<args/>
</exec>
</sequential>
</macrodef>
<macrodef name="git-clone">
<attribute name="repository" />
<attribute name="dest" />
<sequential>
<git command="clone">
<args>
<arg value="@{repository}" />
<arg value="@{dest}" />
</args>
</git>
</sequential>
</macrodef>
<macrodef name="git-pull">
<attribute name="dest" />
<sequential>
<git command="pull" dir="@{dest}" />
</sequential>
</macrodef>
<macrodef name="git-clone-pull">
<attribute name="repository" />
<attribute name="dest" />
<sequential>
<git-clone repository="@{repository}" dest="@{dest}" />
<git-pull dest="@{dest}" />
</sequential>
</macrodef>
<macrodef name="git-clone-shallow">
<attribute name="repository" />
<attribute name="dest" />
<sequential>
<git command="clone">
<args>
<arg value="@{repository}" />
<arg value="@{dest}" />
<arg value="--depth=1" />
</args>
</git>
</sequential>
</macrodef>
<macrodef name="git-export">
<attribute name="repository" />
<attribute name="dest" />
<sequential>
<git-clone-shallow repository="@{repository}" dest="@{dest}" />
<delete dir="@{dest}/.git" includeemptydirs="true" casesensitive="false" />
</sequential>
</macrodef>
<!-- GitHub Download Macros -->
<macrodef name="github-dl">
<attribute name="repository" />
<attribute name="dest" />
<attribute name="tag" />
<attribute name="file" />
<sequential>
<echo message="Fetching https://github.com/@{repository}/releases/download/@{tag}/@{file}..." />
<get retries="3" src="https://github.com/@{repository}/releases/download/@{tag}/@{file}" dest="@{dest}"/>
</sequential>
</macrodef>
<!-- Maven Download Macros -->
<property name="maven.base.url" value="https://repo1.maven.org/maven2" />
<macrodef name="maven-jar-dl" description="Download a Maven Jar. Does not pull associated dependencies.">
<attribute name="base-url" default="${maven.base.url}" description="The base artifact Repository URL." />
<attribute name="group-path" description="The artifact group with slashes instead of dots." />
<attribute name="artifact" description="The artifact name." />
<attribute name="version" description="The artifact version (with appendices like -RELEASE, if any)." />
<attribute name="extension" default="" description="What to add after the version in the file." />
<attribute name="dest" default="${dependencies.dir}" description="The target download directory." />
<sequential>
<local name="download.jar.file.url" />
<property name="download.jar.file.url" value="@{base-url}/@{group-path}/@{artifact}/@{version}/@{artifact}-@{version}@{extension}.jar" />
<echo message="Fetching ${download.jar.file.url}..." />
<get retries="3" src="${download.jar.file.url}" dest="@{dest}"/>
</sequential>
</macrodef>
<macrodef name="maven-jar-sources-dl" description="Download a Maven -sources Jar.">
<attribute name="base-url" default="${maven.base.url}" description="The base artifact Repository URL." />
<attribute name="group-path" description="The artifact group with slashes instead of dots." />
<attribute name="artifact" description="The artifact name." />
<attribute name="version" description="The artifact version (with appendices like -RELEASE, if any)." />
<attribute name="dest" default="${dependencies.dir}" description="The target download directory." />
<sequential>
<maven-jar-dl
dest="@{dest}"
base-url="@{base-url}"
group-path="@{group-path}"
artifact="@{artifact}"
version="@{version}"
extension="-sources"
/>
</sequential>
</macrodef>
<macrodef name="maven-jar-javadoc-dl" description="Download a Maven -javadoc Jar.">
<attribute name="base-url" default="${maven.base.url}" description="The base artifact Repository URL." />
<attribute name="group-path" description="The artifact group with slashes instead of dots." />
<attribute name="artifact" description="The artifact name." />
<attribute name="version" description="The artifact version (with appendices like -RELEASE, if any)." />
<attribute name="dest" default="${dependencies.dir}" description="The target download directory." />
<sequential>
<maven-jar-dl
dest="@{dest}"
base-url="@{base-url}"
group-path="@{group-path}"
artifact="@{artifact}"
version="@{version}"
extension="-javadoc"
/>
</sequential>
</macrodef>
<!-- Targets -->
<target name="clean.dependencies">
<delete quiet="true" includeemptydirs="true">
<fileset dir="${dependencies.dir}" includes="**/*" defaultexcludes="false" />
</delete>
</target>
<target name="init.dependencies" depends="clean.dependencies">
<mkdir dir="${dependencies.dir}" />
</target>
<target name="dependency.properties">
<echo message="Writing to build.properties...." />
<echo message="dev.base=${dependencies.dir} " file="build.properties" append="true" />
</target>
</project>