forked from sbadame/desktopgradeapp
-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.xml
222 lines (196 loc) · 8.1 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
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<?xml version="1.0"?>
<!--
build.xml - generic build file that compiles, runs and builds the final
product
public targets (default is build):
build compile and test all code
dist create the final deliverable, put it into the "dist" folder
Note: This includes a windows executable
clean delete dist and bin folders, this forces a total recompile
config-windows
Runs the launch4j program that configures the creation
of the windows .exe
doc Generates the javadoc and puts it into the "doc" folder
run Runs the program
examples: These targets run example code that was tested before
moving into the main program
example-boothe: Tries out the Boothe code
example-email: Sends out an email
example-excel: Tries out the excel library
example-graph: Tries out the jgraph library
example-grender: Another jgraph test
example-print: test out printing
example-save: test saving to a *.png
-->
<project name="gradeapp" default="build" basedir=".">
<!-- Holds a list of all of the 'main' project's dependencies -->
<path id="lib.path">
<fileset dir=".">
<include name="lib/*.jar" />
</fileset>
</path>
<!-- build the program -->
<target name="build" depends="-compile,test" description="Builds the jar'd version of GradeApp">
<mkdir dir="dist" />
<mkdir dir="dist/lib" />
<jar jarfile="dist/GradeApp.jar">
<fileset dir="bin/main" />
<manifest>
<attribute name="Implementation-Vendor" value="Desktop Application Group"/>
<attribute name="Main-Class" value="gradeapp.GradeApp" />
<attribute name="Class-Path" value="lib/jgraph.jar lib/junit-4.6.jar lib/mail.jar lib/poi-3.6-20091214.jar lib/poi-ooxml-3.6-20091214.jar lib/xmlbeans-2.3.0.jar lib/poi-ooxml-schemas-3.6-20091214.jar lib/dom4j-1.6.1.jar lib/geronimo-stax-api_1.0_spec-1.0.jar" />
</manifest>
</jar>
<copy todir="dist">
<path refid="lib.path"/>
</copy>
</target>
<!-- Create a zip file containing the ditributable binaries -->
<target name="-zip" depends="build,-build-windows" >
<zip destfile="GradeApp.zip">
<zipfileset dir="." includes="README.txt" prefix="GradeApp" />
<zipfileset dir="dist" prefix="GradeApp" />
</zip>
</target>
<!-- Create final Deliverable -->
<target name="dist" depends="build,-build-windows,-zip" description="Builds the jar'd version of GradeApp">
</target>
<!-- Basic simple clean target -->
<target name="clean" description="Deletes the bin and dist folders">
<delete dir="bin"/>
<delete dir="dist"/>
</target>
<!-- make our binaries -->
<target name="-compile" description="Compiles the code into the bin folder">
<mkdir dir="bin" />
<mkdir dir="bin/main" />
<mkdir dir="bin/test" />
<mkdir dir="bin/examples" />
<javac srcdir="src/main" destdir="bin/main" classpathref="lib.path" debug="on" source="6" />
<javac srcdir="src/test" destdir="bin/test" classpathref="lib.path" debug="on" source="6" />
<javac srcdir="src/examples" destdir="bin/examples" debug="on" source="6" >
<classpath>
<path refid="lib.path" />
<path location="bin/main" />
</classpath>
</javac>
<!-- don't forget our icons!! -->
<copy todir="bin/main">
<fileset dir="src/main" includes="**/*.png" />
</copy>
</target>
<!-- run junit to test the program -->
<target name="test" description="Run the unit tests on the code">
<junit>
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/test" />
</classpath>
<formatter type="brief" usefile="false" />
<batchtest >
<fileset dir="bin/test" includes="**/*.class" />
</batchtest>
</junit>
</target>
<!--- target to run the program -->
<target name="run" depends="build" description="Runs the executable jar">
<java jar="dist/GradeApp.jar" fork="true" />
</target>
<!-- The following are targets to run a bunch of the examples -->
<!-- to make your own, copy the following xml... -->
<!--
<target name="the name that you like" depends="build">
<java fork="true" classname="the class name of your example" >
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
-->
<target name="example-boothe" depends="build">
<java fork="true" classname="boothe.BootheAlgo" >
<arg value="sampledata/boothesample.txt" />
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
<!-- Example program that explores some HSSF excel magic
You probably want to read the source first to see what it does -->
<target name="example-excel" depends="build">
<java fork="true" classname="excel.ExcelExample" >
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
<target name="example-graph" depends="build">
<java fork="true" classname="graph.GraphTest">
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
<target name="example-save" depends="build">
<java fork="true" classname="graph.SaveTest" >
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
<target name="example-print" depends="build">
<java fork="true" classname="graph.PrintTest" >
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
<target name="example-grender" depends="build">
<java fork="true" classname="graph.GRenderExample" >
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
<target name="example-email" depends="build">
<java fork="true" classname="email.EmailTest" >
<classpath>
<path refid="lib.path"/>
<path location="bin/main"/>
<path location="bin/examples"/>
</classpath>
</java>
</target>
<!-- create documention from the source code -->
<target name="doc">
<javadoc sourcepath="src/main" destdir="doc" classpathref="lib.path" packagenames="gradeapp" >
<link href="http://java.sun.com/j2se/1.5.0/docs/api/" />
<link href="http://www.jgraph.com/doc/jgraph/" />
<link href="http://poi.apache.org/apidocs/" />
</javadoc>
</target>
<!-- Build exe for Windows, Lifted from: http://launch4j.sourceforge.net/docs.html -->
<taskdef name="launch4j" classname="net.sf.launch4j.ant.Launch4jTask" classpath="lib/launch4j/launch4j.jar:lib/launch4j/xstream.jar"/>
<target name="-build-windows" depends="build">
<launch4j configFile="lib/launch4j/gradeappconfig.xml" />
</target>
<!-- Use this target to bring up the GUI used to the edit the gradeappconfig.xml -->
<target name="config-windows">
<java jar="lib/launch4j/launch4j.jar" fork="true" />
</target>
</project>