forked from liferay/liferay-portal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build-common-ivy.xml
127 lines (113 loc) · 3.02 KB
/
build-common-ivy.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
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="build-common-ivy" xmlns:antelope="antlib:ise.antelope.tasks" xmlns:ivy="antlib:org.apache.ivy.ant">
<macrodef name="mirrors-get">
<attribute name="dest" />
<attribute default="false" name="ignoreerrors" />
<attribute name="src" />
<attribute default="true" name="trylocalnetwork" />
<attribute default="false" name="verbose" />
<sequential>
<propertyregex
input="@{src}"
override="true"
property="mirrors.cache.artifact.subdir"
regexp="https?://(.+/).+"
replace="\1"
/>
<property name="mirrors.cache.artifact.dir" value="${mirrors.cache.dir}/${mirrors.cache.artifact.subdir}" />
<propertyregex
input="@{src}"
override="true"
property="mirrors.cache.artifact.file.name"
regexp=".+/(.+)"
replace="\1"
/>
<if>
<not>
<available file="${mirrors.cache.artifact.dir}/${mirrors.cache.artifact.file.name}" />
</not>
<then>
<mkdir dir="${mirrors.cache.artifact.dir}" />
<propertyregex
input="@{src}"
override="true"
property="mirrors.src"
regexp="http://"
replace="http://mirrors/"
/>
<if>
<equals arg1="@{trylocalnetwork}" arg2="true" />
<then>
<trycatch>
<try>
<get
dest="${mirrors.cache.artifact.dir}"
ignoreerrors="@{ignoreerrors}"
src="${mirrors.src}"
verbose="@{verbose}"
/>
</try>
<catch>
<get
dest="${mirrors.cache.artifact.dir}"
ignoreerrors="@{ignoreerrors}"
src="@{src}"
verbose="@{verbose}"
/>
</catch>
</trycatch>
</then>
<else>
<get
dest="${mirrors.cache.artifact.dir}"
ignoreerrors="@{ignoreerrors}"
src="@{src}"
verbose="@{verbose}"
/>
</else>
</if>
</then>
</if>
<if>
<available file="@{dest}" type="dir" />
<then>
<copy
file="${mirrors.cache.artifact.dir}/${mirrors.cache.artifact.file.name}"
tofile="@{dest}/${mirrors.cache.artifact.file.name}"
/>
</then>
<else>
<copy
file="${mirrors.cache.artifact.dir}/${mirrors.cache.artifact.file.name}"
tofile="@{dest}"
/>
</else>
</if>
<var name="mirrors.cache.artifact.dir" unset="true" />
<var name="mirrors.cache.artifact.file.name" unset="true" />
<var name="mirrors.cache.artifact.subdir" unset="true" />
<var name="mirrors.src" unset="true" />
</sequential>
</macrodef>
<if>
<not>
<available file="${ivy.home}/ivy-${ivy.version}.jar" />
</not>
<then>
<mkdir dir="${ivy.home}" />
<mirrors-get
dest="${ivy.home}/ivy-${ivy.version}.jar"
src="${ivy.jar.url}"
/>
</then>
</if>
<path id="ivy.lib.path">
<fileset
dir="${ivy.home}"
includes="ivy-${ivy.version}.jar"
/>
</path>
<taskdef classpathref="ivy.lib.path" resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" />
<ivy:settings file="${project.dir}/ivy-settings.xml" />
</project>