-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.xml
129 lines (115 loc) · 4.26 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="dist" name="susestudio-java-client">
<!-- Properties -->
<property name="debuglevel" value="source,lines,vars" />
<!-- Directories -->
<property name="dir-src-main" value="src/main/java" />
<property name="dir-src-main-resources" value="src/main/resources" />
<property name="dir-src-test" value="src/test/java" />
<property name="dir-src-test-resources" value="src/test/resources" />
<property name="dir-lib" value="lib" />
<property name="dir-bin" value="bin" />
<property name="dir-dist" value="dist" />
<!-- Load properties from file -->
<property file="${basedir}/buildconf/build.properties" />
<!-- Classpath for building the code -->
<path id="classpath-build">
<fileset dir="${dir-lib}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- Classpath for building and running tests -->
<path id="classpath-tests">
<path refid="classpath-build" />
<fileset dir="${dir-dist}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- Clean binaries and jars -->
<target name="clean">
<delete dir="${dir-bin}" />
<delete dir="${dir-dist}" />
</target>
<!-- Init -->
<target name="init-jar">
<mkdir dir="${dir-bin}" />
<copy includeemptydirs="false" todir="${dir-bin}">
<fileset dir="${dir-src-main}">
<exclude name="**/*.java" />
</fileset>
<fileset dir="${dir-src-main-resources}" />
</copy>
</target>
<!-- Build the code -->
<target name="build-jar" depends="init-jar">
<javac debug="true" debuglevel="${debuglevel}" srcdir="${dir-src-main}" destdir="${dir-bin}" includeantruntime="false">
<exclude name="**/test/**" />
<classpath refid="classpath-build" />
</javac>
</target>
<!-- Init tests -->
<target name="init-tests">
<delete dir="${dir-bin}" />
<mkdir dir="${dir-bin}" />
<copy includeemptydirs="false" todir="${dir-bin}">
<fileset dir="${dir-src-test}">
<exclude name="**/*.java" />
</fileset>
<fileset dir="${dir-src-test-resources}" />
</copy>
</target>
<!-- Build tests -->
<target name="build-tests" depends="dist-jar, init-tests">
<javac debug="true" debuglevel="${debuglevel}" srcdir="${dir-src-test}" destdir="${dir-bin}" includeantruntime="false">
<include name="**/test/*.java" />
<classpath refid="classpath-tests" />
</javac>
</target>
<!-- Create jar file, exclude tests -->
<target name="dist-jar" depends="build-jar">
<mkdir dir="${dir-dist}" />
<jar destfile="${dir-dist}/${ant.project.name}-${version}.jar" basedir="${dir-bin}">
<exclude name="**/test/**" />
</jar>
</target>
<!-- Create jar file, include the tests ONLY -->
<target name="dist-tests" depends="build-tests">
<mkdir dir="${dir-dist}" />
<jar destfile="${dir-dist}/${ant.project.name}-${version}-tests.jar" basedir="${dir-bin}">
<include name="**/test/**" />
</jar>
</target>
<!-- Run tests using built artifacts -->
<target name="run-tests" depends="dist-jar, dist-tests">
<junit printsummary="yes" haltonfailure="yes">
<classpath refid="classpath-tests" />
<test name="com.suse.studio.client.test.RequestTest" outfile="result">
<formatter type="plain" />
</test>
<test name="com.suse.studio.client.test.ResponseTest" outfile="result">
<formatter type="plain" />
</test>
<test name="com.suse.studio.client.test.EmptyModelTest" outfile="result">
<formatter type="plain" />
</test>
</junit>
</target>
<!-- Create a tar.bz2 archive containing the sources -->
<target name="dist-sources">
<mkdir dir="${dir-dist}" />
<tar destfile="${dir-dist}/${ant.project.name}-${version}-sources.tar.bz2" compression="bzip2" longfile="gnu">
<tarfileset dir="${basedir}" prefix="${ant.project.name}-${version}">
<include name="src/**" />
<include name="lib/**" />
<include name="buildconf/**" />
<include name="build.xml" />
<include name="LICENSE" />
<include name="README" />
</tarfileset>
</tar>
</target>
<!-- Meta target -->
<target name="dist" depends="clean, run-tests, dist-sources">
<echo message="Build finished" />
</target>
</project>