-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.xml
executable file
·129 lines (115 loc) · 4.85 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
<?xml version="1.0"?>
<project name="cask" default="package" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="conf.dir" value="conf"/>
<property name="lib.dir" value="lib"/>
<property name="testlib.dir" value="testlib"/>
<property name="bin.dir" value="bin"/>
<property name="src.dir" value="src"/>
<property name="web.dir" value="web"/>
<property name="logs.dir" value="logs"/>
<property name="classes.dir" value="classes"/>
<property name="release.txt" value="RELEASE_NOTES.txt"/>
<property name="test.dir" value="test"/>
<property name="report.dir" value="report"/>
<property file="${src.dir}/version.properties"/>
<property name="version" value="${VERSION}"/>
<property name="dist.dir" value="${ant.project.name}-${version}"/>
<property name="jar.file" value="${ant.project.name}-${version}.jar"/>
<property name="tar.file" value="${ant.project.name}-${version}.tar.gz"/>
<property environment="env"/>
<property name="github.repo.local" value="${env.GITHUB_MAVEN_REPO}"/>
<path id="libraries">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>
<target name="clean">
<delete dir="${classes.dir}"/>
<delete includeemptydirs="true">
<fileset dir="." includes="${ant.project.name}-*"/>
<fileset dir="." includes="${ant.project.name}-*/"/>
</delete>
</target>
<target name="init">
<mkdir dir="${classes.dir}"/>
<mkdir dir="${dist.dir}"/>
</target>
<target name="compile" depends="clean, init">
<javac debug="true" srcdir="${src.dir}" destdir="${classes.dir}"
classpathref="libraries" includeantruntime="false" />
<copy todir="${classes.dir}">
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</fileset>
</copy>
</target>
<target name="package" depends="compile">
<copy todir="${dist.dir}/${bin.dir}">
<fileset dir="${bin.dir}" />
</copy>
<copy todir="${dist.dir}/${conf.dir}">
<fileset dir="${conf.dir}"/>
</copy>
<copy todir="${dist.dir}/${lib.dir}">
<fileset dir="${lib.dir}"/>
</copy>
<copy file="${release.txt}" tofile="${web.dir}/releasenotes"/>
<copy todir="${dist.dir}/${web.dir}">
<fileset dir="${web.dir}"/>
</copy>
<copy todir="${dist.dir}/${logs.dir}">
<fileset dir="${logs.dir}"/>
</copy>
<copy todir="${dist.dir}/${test.dir}">
<fileset dir="${test.dir}"/>
</copy>
<copy file="${release.txt}" todir="${dist.dir}"/>
<jar jarfile="${dist.dir}/${bin.dir}/${jar.file}" basedir="${classes.dir}" />
<tar compression="gzip" destfile="${tar.file}">
<tarfileset dir="${dist.dir}" prefix="${dist.dir}">
</tarfileset>
</tar>
</target>
<target name="resolve" description="--> retreive dependencies with ivy">
<ivy:retrieve type="jar" sync="true"/>
</target>
<target name="report" depends="resolve" description="--> generates a report of dependencies">
<ivy:report todir="${build.dir}"/>
</target>
<target name="clean-cache" description="--> clean the ivy cache">
<ivy:cleancache />
</target>
<target name="test" description="junit tests">
<exec executable="/bin/bash" failonerror="true">
<arg value="${dist.dir}/${bin.dir}/unittest.sh"/>
</exec>
</target>
<target name="publish" depends="resolve, package" description="Publish this build into repository">
<property name="ivy.local.default.ivy.pattern" value="[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
<property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
<ivy:publish pubrevision="${version}" status="release" resolver="local" overwrite="true" >
<artifacts pattern="${dist.dir}/bin/[artifact]-[revision].[ext]"/>
</ivy:publish>
</target>
<target name="github" depends="resolve, package" description="Publish this build into repository">
<property name="ivy.local.default.ivy.pattern" value="[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
<property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
<ivy:publish pubrevision="${version}" status="release" resolver="github-repo-local" overwrite="true" >
<artifacts pattern="${dist.dir}/bin/[artifact]-[revision].[ext]"/>
</ivy:publish>
</target>
<!--
<property environment="env"></property>
<property name="findbugs.home" value="${env.FINDBUGS_HOME}"/>
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
<target name="findbugs">
<findbugs home="${findbugs.home}"
output="xml:withMessages"
outputFile="findbugs.xml" >
<sourcePath path="${src.dir}/" />
<class location="${classes.dir}" />
</findbugs>
</target>
-->
</project>