forked from sormuras/listing
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.xml
More file actions
121 lines (110 loc) · 4.8 KB
/
build.xml
File metadata and controls
121 lines (110 loc) · 4.8 KB
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
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE project>
<project basedir="." name="sormuras/listing" default="test">
<tstamp>
<format property="timestamp" pattern="yyyyMMddHHmm" />
</tstamp>
<property name="version.number" value="1.0.0-SNAPSHOT-${timestamp}" />
<property name="dir.out" value="${basedir}/bin/ant" />
<property name="dir.src" value="${basedir}/src" />
<property name="dir.lib" value="${basedir}/lib" />
<target name="clean">
<echo>be*free</echo>
<delete dir="${dir.out}" />
</target>
<target name="init" depends="clean">
<echo>Creating listing-${version.number}.jar</echo>
<mkdir dir="${dir.out}" />
</target>
<target name="format" depends="init" description="apply google-java-format">
<!-- <property name="format.jar" value="google-java-format-1.0-all-deps.jar" /> -->
<property name="format.jar" value="google-java-format-1.1-20160505.013913-6-all-deps.jar" />
<copy file="${dir.lib}/build/${format.jar}" todir="${basedir}/bin" />
<!-- <get dest="${basedir}/bin" verbose="true" usetimestamp="true"> -->
<!-- <url url="https://github.com/google/google-java-format/releases/download/google-java-format-1.0/${format.jar}" /> -->
<!-- <url url="https://oss.sonatype.org/content/repositories/snapshots/com/google/googlejavaformat/google-java-format/1.1-SNAPSHOT/${format.jar}" /> -->
<!-- </get> -->
<fileset dir="${dir.src}" id="src.files">
<include name="**/*.java" />
<exclude name="generated/**/*" />
</fileset>
<concat destfile="${dir.out}/format-sources-1.txt">
<fileset refid="src.files" />
</concat>
<pathconvert pathsep=" " property="javafiles" refid="src.files" />
<java jar="${basedir}/bin/${format.jar}" fork="yes">
<arg line="-replace" />
<arg line="${javafiles}" />
</java>
<concat destfile="${dir.out}/format-sources-2.txt">
<fileset refid="src.files" />
</concat>
<condition property="files.match">
<filesmatch file1="${dir.out}/format-sources-1.txt"
file2="${dir.out}/format-sources-2.txt"
textfile="yes" />
</condition>
<fail unless="files.match">Formatter ${format.jar} changed at least one source file</fail>
<echo>Formatter ${format.jar} applied</echo>
</target>
<target name="compile" depends="format" description="compile and jar sources">
<mkdir dir="${dir.out}/main/classes" />
<javac destdir="${dir.out}/main/classes" encoding="UTF-8" includeantruntime="no" debug="on">
<src path="${dir.src}/core" />
<src path="${dir.src}/type" />
<src path="${dir.src}/main" />
</javac>
<jar destfile="${dir.out}/listing-${version.number}.jar">
<fileset dir="${dir.out}/main/classes" />
<fileset dir="${dir.src}/main" />
<manifest>
<section name="com/github/sormuras/listing/">
<attribute name="Specification-Title" value="listing" />
<attribute name="Specification-Version" value="1.0" />
<attribute name="Specification-Vendor" value="Christian Stein" />
<attribute name="Implementation-Title" value="com.github.sormuras.listing" />
<attribute name="Implementation-Version" value="${version.number}" />
<attribute name="Implementation-Vendor" value="Christian Stein" />
</section>
</manifest>
</jar>
</target>
<target name="test" depends="compile" description="execute all tests">
<path id="junit.class.path">
<pathelement path="${dir.out}/test/classes" />
<pathelement path="${dir.out}/listing-${version.number}.jar" />
<fileset dir="${dir.lib}/test">
<include name="**/*.jar" />
</fileset>
</path>
<mkdir dir="${dir.out}/test/classes" />
<javac destdir="${dir.out}/test/classes" encoding="UTF-8" includeantruntime="no">
<classpath refid="junit.class.path" />
<src path="${dir.src}/test" />
</javac>
<copy todir="${dir.out}/test/classes">
<fileset dir="${dir.src}/test" excludes="**/*.java" />
</copy>
<mkdir dir="${dir.out}/test-result" />
<!-- JUnit4 -->
<junit printsummary="yes"
fork="yes"
forkmode="once"
haltonfailure="no"
showoutput="yes"
failureproperty="test.failed">
<jvmarg value="-Dfile.encoding=UTF-8" />
<jvmarg value="-Dant.running=true" />
<jvmarg value="-Djava.util.logging.config.file=${dir.src}/test/logging.properties" />
<classpath refid="junit.class.path" />
<formatter type="xml" />
<assertions enablesystemassertions="true" />
<batchtest todir="${dir.out}/test-result">
<fileset dir="${dir.src}/test">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
<fail message="Test failure detected, check test results." if="test.failed" />
</target>
</project>