source: apps/addressbook/build.xml @ cadedeb0

Last change on this file since cadedeb0 was cadedeb0, checked in by zzz <zzz@…>, 9 years ago
  • Build: Add built-by to jars; check for corrupt jars on debug page
  • Property mode set to 100644
File size: 4.4 KB
Line 
1<?xml version="1.0"?>
2<project name="addressbook" default="war" basedir=".">
3
4        <property name="src" value="java/src"/>
5        <property name="build" value="build"/>
6        <property name="dist"  location="dist"/>
7        <property name="jar" value="addressbook.jar"/>
8        <property name="war" value="addressbook.war"/>
9        <property name="javac.compilerargs" value="" />
10       
11        <target name="init">
12                <mkdir dir="${build}"/>
13                <mkdir dir="${dist}"/>
14        </target>
15
16        <target name="clean">
17                <delete dir="${build}"/>
18                <delete dir="${dist}"/>
19        </target>
20
21        <target name="distclean" depends="clean" />
22
23        <condition property="depend.available">
24            <typefound name="depend" />
25        </condition>
26        <target name="depend" if="depend.available">
27            <depend
28                cache="../../build"
29                srcdir="${src}"
30                destdir="${build}" >
31                <!-- Depend on classes instead of jars where available -->
32                <classpath>
33                    <pathelement location="../../core/java/build/obj" />
34                    <pathelement location="../jetty/jettylib/javax.servlet.jar" />
35                </classpath>
36            </depend>
37        </target>
38
39        <target name="compile" depends="init, depend">
40                <javac debug="true" deprecation="on" source="1.5" target="1.5" 
41                       includeAntRuntime="false"
42                       srcdir="${src}" destdir="${build}">
43            <compilerarg line="${javac.compilerargs}" />
44            <classpath>
45                <pathelement location="../../core/java/build/i2p.jar" />
46                <pathelement location="../jetty/jettylib/javax.servlet.jar" />
47            </classpath>
48                </javac>
49        </target>
50
51        <!-- unused for now, as we oddly ship addressbook as a .war -->
52        <target name="jar" depends="compile, changes">
53                <jar basedir="${build}" destfile="${dist}/${jar}">
54                <!-- set if unset -->
55                <property name="workspace.changes" value="" />
56                        <manifest>
57                                <attribute name="Main-Class" value="addressbook.Daemon"/>
58                                <attribute name="Implementation-Version" value="${full.version}" />
59                                <attribute name="Built-By" value="${build.built-by}" />
60                                <attribute name="Build-Date" value="${build.timestamp}" />
61                                <attribute name="Base-Revision" value="${workspace.version}" />
62                                <attribute name="Workspace-Changes" value="${workspace.changes}" />
63                        </manifest>
64                </jar>
65        </target>
66       
67        <target name="war" depends="compile, changes, warUpToDate" unless="war.uptodate">
68                <mkdir dir="${dist}/tmp"/>
69                <mkdir dir="${dist}/tmp/WEB-INF"/>
70                <mkdir dir="${dist}/tmp/WEB-INF/classes"/>
71                <copy todir="${dist}/tmp/WEB-INF/classes">
72                        <fileset dir="${build}"/>
73                </copy>
74                <!-- set if unset -->
75                <property name="workspace.changes.tr" value="" />
76                <war basedir="${dist}/tmp" webxml="web.xml" destfile="${dist}/${war}">
77                        <manifest>
78                                <attribute name="Implementation-Version" value="${full.version}" />
79                                <attribute name="Built-By" value="${build.built-by}" />
80                                <attribute name="Build-Date" value="${build.timestamp}" />
81                                <attribute name="Base-Revision" value="${workspace.version}" />
82                                <attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
83                        </manifest>
84                </war>
85                <delete dir="${dist}/tmp"/>
86        </target>
87       
88        <target name="warUpToDate">
89                <uptodate property="war.uptodate" targetfile="${dist}/${war}">
90                            <srcfiles dir= "." includes="${build}/**/*.class, web.xml"/>
91                </uptodate>
92                <condition property="shouldListChanges" >
93                    <and>
94                        <not>
95                            <isset property="war.uptodate" />
96                        </not>
97                        <isset property="mtn.available" />
98                    </and>
99                </condition>
100        </target>
101
102        <target name="changes" depends="warUpToDate" if="shouldListChanges" >
103                <exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
104                    <arg value="list" />
105                    <arg value="changed" />
106                    <arg value="." />
107                </exec>
108                <!-- \n in an attribute value generates an invalid manifest -->
109                <exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
110                        <arg value="-s" />
111                        <arg value="[:space:]" />
112                        <arg value="," />
113                </exec>
114        </target>
115</project>
Note: See TracBrowser for help on using the repository browser.