-
Notifications
You must be signed in to change notification settings - Fork 18
/
build.xml
114 lines (97 loc) · 4.33 KB
/
build.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
<project name="go-generic-artifactory-poller" default="all" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="ivy.install.version" value="2.3.0" />
<condition property="ivy.home" value="${env.IVY_HOME}">
<isset property="env.IVY_HOME" />
</condition>
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<target name="download-ivy" unless="offline">
<mkdir dir="${ivy.jar.dir}"/>
<!-- getJsonObject Ivy from web site so that it can be used even without
any special installation -->
<get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
dest="${ivy.jar.file}"
usetimestamp="true"/>
</target>
<target name="init-ivy"
depends="download-ivy">
<!-- try to load ivy here from ivy home, in case the user has not
already dropped it into ant's lib dir (note that the latter copy
will always take precedence). We will not fail as long as local
lib dir exists (it may be empty) and ivy is in at least one of
ant's lib dir or the local lib dir. -->
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}"
includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant"
classpathref="ivy.lib.path"/>
</target>
<property name="go.plugin.util" value="sdk/go-plugin-util.jar"/>
<property name="target.dir" value="bin"/>
<property name="dist.dir" value="dist"/>
<property name="test.reports.dir" value="reports"/>
<path id="compile.classpath">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="${go.plugin.util}"/>
</path>
<target name="resolve">
<ivy:retrieve/>
</target>
<target name="all" depends="clean, compile.source, compile.test, test, dist"/>
<target name="clean">
<delete dir="${target.dir}" description="Deletes the target directory"/>
<delete dir="${dist.dir}" description="Deletes the dist directory"/>
</target>
<target name="prepare" depends="clean">
<mkdir dir="${target.dir}"/>
<mkdir dir="${target.dir}/src"/>
<mkdir dir="${target.dir}/test"/>
<mkdir dir="${test.reports.dir}"/>
</target>
<target name="compile.source" depends="prepare, resolve">
<javac srcdir="./src" destdir="${target.dir}/src" classpathref="compile.classpath" includeantruntime="false"
source="1.6"/>
</target>
<target name="compile.test" depends="compile.source">
<javac srcdir="test" destdir="${target.dir}/test" includeantruntime="false">
<classpath refid="compile.classpath"/>
<classpath location="${target.dir}/src"/>
</javac>
</target>
<target name="test" depends="compile.test">
<junit failureproperty="test.failed">
<classpath>
<path refid="compile.classpath"/>
<pathelement location="${target.dir}/src"/>
<pathelement location="${target.dir}/test"/>
</classpath>
<formatter type="plain"/>
<batchtest fork="yes" todir="${test.reports.dir}">
<fileset dir="test/fast">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
<fail message="Test failure detected, check test results." if="test.failed"/>
</target>
<target name="dist" depends="compile.source">
<mkdir dir="${target.dir}/src/lib"/>
<copy todir="${target.dir}/src/lib" flatten="true">
<fileset dir="lib">
<exclude name="junit*.jar"/>
<exclude name="mockito*.jar"/>
<include name="*.jar"/>
</fileset>
<file file="sdk/go-plugin-util.jar"/>
</copy>
<basename property="jar.name" file="${basedir}"/>
<copy file="plugin.xml" todir="${target.dir}/src"/>
<mkdir dir="${dist.dir}"/>
<jar basedir="${target.dir}/src" destfile="${dist.dir}/${jar.name}.jar"/>
</target>
</project>