-
Notifications
You must be signed in to change notification settings - Fork 3
/
build.xml
81 lines (65 loc) · 2.66 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
<?xml version="1.0" encoding="UTF-8"?>
<project name="dynamite" default="jar" basedir=".">
<property name="VERSION" value="0.1" />
<property name="BUILD_PATH" value="bin" />
<property name="SRC_PATH" value="src" />
<property name="LIB_PATH" value="lib" />
<property name="JAR_LOCATION" value="./dynamite-${VERSION}.jar" />
<property name="FULL_JAR_LOCATION" value="./dynamite-full-${VERSION}.jar" />
<property name="JAR_REMOTE_DIR" value="" />
<property name="SCP_PRIVATE_KEY" value="" />
<property name="SCP_PASSPHRASE" value="" />
<property name="PORT" value="22" />
<target name="clean">
<delete dir="${BUILD_PATH}" />
</target>
<target name="init">
<mkdir dir="${BUILD_PATH}" />
</target>
<target name="compile" depends="init" description="">
<javac includeantruntime="false" srcdir="${SRC_PATH}" destdir="${BUILD_PATH}" debug="true">
<classpath>
<fileset dir="${LIB_PATH}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
</target>
<target name="jar" depends="compile">
<jar destfile="${JAR_LOCATION}">
<fileset dir="${BUILD_PATH}"/>
</jar>
</target>
<property name="jar.dir" value="jar" />
<property name="depsjar.file" value="${jar.dir}/dynamite-deps.jar" />
<property name="manifest.file" value="${jar.dir}/MANIFEST.MF" />
<property name="main.class" value="nl.vu.cs.dynamite.Reasoner" />
<!-- Build-jar target rule: creates a fat-jar/bundle by using
jar-unjar-jar mechanism -->
<target name="build-jar" depends="compile">
<delete dir="${jar.dir}" />
<mkdir dir="${jar.dir}" />
<!-- Create manifest file with proejct specs inside -->
<manifest file="${manifest.file}" >
<attribute name="built-by" value="${user.name}" />
<attribute name="Main-Class" value="${main.class}" />
<attribute name="Class-Path" value="." />
</manifest>
<!-- Jar all the dependencies -->
<jar jarfile="${depsjar.file}">
<zipgroupfileset dir="${LIB_PATH}" includes="**/*.jar" />
</jar>
<!-- Wait for packaging -->
<sleep seconds="1" />
<!-- Unjar dependencies + clean signatures + jar the whole projects
as a fat-jar/bundle -->
<jar jarfile="${FULL_JAR_LOCATION}" basedir="${BUILD_PATH}" manifest="${manifest.file}">
<zipfileset src="${depsjar.file}" excludes="META-INF/**/*" />
</jar>
<!-- Delete de dependecies jar -->
<delete dir="${jar.dir}" />
</target>
<target name="deploy" depends="build-jar" description="Copy the jar in a specific location">
<scp file="${FULL_JAR_LOCATION}" todir="${JAR_REMOTE_DIR}" keyfile="${SCP_PRIVATE_KEY}" passphrase="${SCP_PASSPHRASE}" trust="true" port="${PORT}"/>
</target>
</project>