forked from ucsb-cs56-projects/cs56-music-beatbox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
106 lines (90 loc) · 3.91 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
<project default="compile">
<!-- build.xml for beatbox, S13, CS56
name: Martin Rey Rochin Inda and Matt Kwis
name: Callum Steele and Miranda Aperghis -->
<property environment="env"/> <!-- load the environment variables -->
<property name="webRoot" value="${env.HOME}/public_html/cs56/projects/music"/>
<property name="webBaseUrl" value="http://www.cs.ucsb.edu/~${env.USER}/cs56/projects/music"/>
<property name="projectName" value="beatbox" />
<property name="fullPkg" value="edu.ucsb.cs56.projects.music.beatbox" />
<property name="mainClass" value="edu.ucsb.cs56.projects.music.beatbox.BeatBoxFinal" />
<property name="mainClass02" value="edu.ucsb.cs56.projects.music.beatbox.MusicServer" />
<property name="javadocDest" value="${webRoot}/${projectName}/javadoc" />
<property name="javadocURL" value="${webBaseUrl}/${projectName}/javadoc" />
<path id="project.class.path">
<pathelement location="build"/>
<pathelement location="/lib/junit-4.8.2.jar"/>
</path>
<target name="compile" description="compiles the source code">
<mkdir dir="build" />
<javac srcdir="src" destdir="build" includeantruntime="false" debug="true" debugLevel="lines,source">
<classpath refid="project.class.path"/>
</javac>
</target>
<target name="run" depends="compile" description="tells the user how to run">
<echo>
you may use ant -p to list the commands
To run the different classes, type these commands:
ant client
ant server
To play online, server must be run on csil.cs.ucsb.edu
</echo>
</target>
<target name="client" depends="compile" description="runs the class BeatBoxFinal">
<java classname="${mainClass}" fork="true">
<arg line="${env.USER}"/>
<classpath refid="project.class.path"/>
</java>
</target>
<target name="server" depends="compile" description="runs the class MusicServer">
<java classname="${mainClass02}" fork="true">
<classpath refid="project.class.path" />
</java>
</target>
<target name="clean" description="deletes the build directory">
<delete dir="build" />
<delete dir="dist" />
<delete dir="javadoc" />
</target>
<target name="test" depends="compile" description="runs all the Junit tests">
<junit haltonerror="no" haltonfailure="no">
<classpath refid="project.class.path" />
<batchtest fork="yes">
<fileset dir="src">
<!-- this will pick up every class with a name ending in Test -->
<include name="**/*Test.java"/>
</fileset>
</batchtest>
<formatter type="plain" usefile="false" />
</junit>
</target>
<target name="javadoc" depends="compile" description="produces the javadoc">
<delete dir="javadoc" quiet="true" />
<javadoc destdir="javadoc" author="true" version="true" use="true" >
<fileset dir="src" includes="**/*.java"/>
<classpath refid="project.class.path" />
<link href="http://java.sun.com/javase/6/docs/api/" />
</javadoc>
<!-- delete the old javadoc -->
<delete quiet="true" dir="${javadocDest}" />
<!-- copy everything you just made to the javadoc destination, and then make it readable -->
<copy todir="${javadocDest}" >
<fileset dir="javadoc"/>
</copy>
<!-- Note: this only does the chmod command on the
javadoc subdirectory and its contents. You MIGHT have to
MANUALLY do the chmod on the parent directories. However,
you should only need to do that once. -->
<chmod dir="${javadocDest}" perm="755" type="dir" includes="**" />
<chmod dir="${javadocDest}" perm="755" type="file" includes="**/*" />
<echo>Javadoc deployed to ${javadocURL}</echo>
</target>
<target name="jar" depends="compile" description="produces a Java archive">
<mkdir dir="dist" />
<jar destfile="dist/${projectName}.jar" basedir="build">
<manifest>
<attribute name="Main-Class" value="${mainClass}"/>
</manifest>
</jar>
</target>
</project>