Mercurial > hg > Members > sugi > MessagePack-java
comparison build.xml @ 0:cb825acd883a
first commit
author | sugi |
---|---|
date | Sat, 18 Oct 2014 15:06:15 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:cb825acd883a |
---|---|
1 <project name="MessagePack for Java" default="jar" | |
2 xmlns:ivy="antlib:org.apache.ivy.ant" | |
3 xmlns:mvn="urn:maven-artifact-ant"> | |
4 | |
5 <property name="Name" value="MessagePack"/> | |
6 <property name="name" value="msgpack"/> | |
7 <property name="version" value="0.0.1"/> | |
8 <property name="fullname" value="${name}-${version}"/> | |
9 <property name="year" value="2011"/> | |
10 | |
11 <!-- Load user's default properties. --> | |
12 <property file="${user.home}/build.properties" /> | |
13 | |
14 <property name="src.dir" value="${basedir}/src/main/java"/> | |
15 <property name="java.src.dir" value="${src.dir}/"/> | |
16 <property name="build.dir" value="${basedir}/build"/> | |
17 <property name="lib.dir" value="${basedir}/lib"/> | |
18 <property name="dist.dir" value="${basedir}/dist"/> | |
19 | |
20 <property name="build.classes" value="${build.dir}/classes"/> | |
21 <property name="build.doc" value="${build.dir}/doc"/> | |
22 <property name="build.javadoc" value="${build.doc}/api/"/> | |
23 <property name="build.javadoc.log" value="${build.dir}/javadoc.log"/> | |
24 | |
25 <property name="test.count" value="100"/> | |
26 <property name="test.junit.output.format" value="plain"/> | |
27 <property name="test.java.src.dir" value="${basedir}/src/test/java"/> | |
28 <property name="test.java.build.dir" value="${build.dir}/test"/> | |
29 <property name="test.java.classes" value="${test.java.build.dir}/classes"/> | |
30 <property name="test.java.include" value="Test*"/> | |
31 | |
32 <property name="javac.encoding" value="ISO-8859-1"/> | |
33 <property name="javac.debug" value="on"/> | |
34 <property name="javac.optimize" value="on"/> | |
35 <property name="javac.deprecation" value="off"/> | |
36 <property name="javac.version" value="1.6"/> | |
37 <property name="javac.args" value=""/> | |
38 <property name="javac.args.warnings" value="-Xlint:unchecked"/> | |
39 | |
40 <property name="javadoc.link.java" | |
41 value="http://java.sun.com/javase/6/docs/api/"/> | |
42 <property name="javadoc.packages" value="org.${name}.*"/> | |
43 | |
44 <!-- ivy settings --> | |
45 <property name="ivy.version" value="2.1.0"/> | |
46 <property name="ivy.url" | |
47 value="http://repo2.maven.org/maven2/org/apache/ivy/ivy" /> | |
48 <property name="ivy.home" value="${user.home}/.ant" /> | |
49 <property name="ivy.lib" value="${build.dir}/lib"/> | |
50 <property name="ivy.test.lib" value="${build.dir}/test/lib"/> | |
51 <property name="mvn.repo" | |
52 value="https://repository.apache.org/content/repositories/snapshots"/> | |
53 | |
54 <!-- the normal classpath --> | |
55 <path id="libs"> | |
56 <fileset dir="${ivy.lib}"> | |
57 <include name="**/*.jar" /> | |
58 </fileset> | |
59 </path> | |
60 <path id="java.classpath"> | |
61 <pathelement location="${build.classes}"/> | |
62 <fileset dir="${lib.dir}"> | |
63 <include name="**/*.jar" /> | |
64 <exclude name="**/excluded/" /> | |
65 </fileset> | |
66 <fileset dir="${ant.home}/lib"> | |
67 <include name="ant.jar" /> | |
68 </fileset> | |
69 <path refid="libs" /> | |
70 </path> | |
71 <path id="test.libs"> | |
72 <fileset dir="${ivy.test.lib}"> | |
73 <include name="**/*.jar" /> | |
74 </fileset> | |
75 </path> | |
76 <path id="test.java.classpath"> | |
77 <pathelement location="${test.java.classes}" /> | |
78 <path refid="java.classpath"/> | |
79 <path refid="test.libs"/> | |
80 </path> | |
81 | |
82 <!-- init & clean --> | |
83 <target name="init"> | |
84 <mkdir dir="${build.dir}" /> | |
85 <mkdir dir="${lib.dir}" /> | |
86 <mkdir dir="${build.classes}" /> | |
87 | |
88 <mkdir dir="${test.java.build.dir}"/> | |
89 <mkdir dir="${test.java.classes}"/> | |
90 | |
91 <mkdir dir="${ivy.lib}"/> | |
92 <mkdir dir="${ivy.test.lib}"/> | |
93 <condition property="ivy.jar.exists"> | |
94 <available file="${lib.dir}/ivy-${ivy.version}.jar"/> | |
95 </condition> | |
96 </target> | |
97 <target name="clean"> | |
98 <delete dir="${build.dir}" /> | |
99 </target> | |
100 | |
101 <!-- ivy targets --> | |
102 <target name="ivy-download" unless="ivy.jar.exists" depends="init"> | |
103 <delete dir="${lib.dir}" | |
104 includes="ivy-*.jar" excludes="ivy-${ivy.version}.jar"/> | |
105 <get src="${ivy.url}/${ivy.version}/ivy-${ivy.version}.jar" | |
106 dest="${lib.dir}/ivy-${ivy.version}.jar" usetimestamp="true"/> | |
107 </target> | |
108 <target name="ivy-init" depends="ivy-download" unless="ivy.initialized"> | |
109 <taskdef resource="org/apache/ivy/ant/antlib.xml" | |
110 uri="antlib:org.apache.ivy.ant" classpathref="java.classpath"/> | |
111 <!-- ensure that ivy taskdef is only run once, otw ant will error --> | |
112 <property name="ivy.initialized" value="true"/> | |
113 </target> | |
114 | |
115 <target name="ivy-retrieve-build" depends="init,ivy-init"> | |
116 <ivy:retrieve type="jar" conf="build" | |
117 pattern="${ivy.lib}/[artifact]-[revision].[ext]"/> | |
118 </target> | |
119 <target name="ivy-retrieve-test" depends="init,ivy-init"> | |
120 <ivy:retrieve type="jar" conf="test" | |
121 pattern="${ivy.test.lib}/[artifact]-[revision].[ext]"/> | |
122 </target> | |
123 | |
124 <!-- compiler --> | |
125 <macrodef name="java-compiler"> | |
126 <attribute name="dest" default="${build.classes}"/> | |
127 <attribute name="includes" default="**/*.java"/> | |
128 <attribute name="excludes" default=""/> | |
129 <attribute name="classpath" default="java.classpath"/> | |
130 <element name="src" implicit="yes"/> | |
131 <sequential> | |
132 <javac | |
133 destdir="@{dest}" | |
134 includes="@{includes}" | |
135 excludes="@{excludes}" | |
136 encoding="${javac.encoding}" | |
137 debug="${javac.debug}" | |
138 optimize="${javac.optimize}" | |
139 target="${javac.version}" | |
140 source="${javac.version}" | |
141 deprecation="${javac.deprecation}"> | |
142 <compilerarg line="${javac.args} ${javac.args.warnings}" /> | |
143 <classpath refid="@{classpath}"/> | |
144 <src /> | |
145 </javac> | |
146 </sequential> | |
147 </macrodef> | |
148 | |
149 <!-- compile --> | |
150 <target name="compile" depends="init,ivy-retrieve-build"> | |
151 <java-compiler> | |
152 <src path="${java.src.dir}"/> | |
153 </java-compiler> | |
154 </target> | |
155 | |
156 <!-- test --> | |
157 <macrodef name="test-runner"> | |
158 <attribute name="files.location" /> | |
159 <attribute name="tests.pattern" /> | |
160 <attribute name="test.dir" default="${test.java.build.dir}" /> | |
161 <sequential> | |
162 <junit showoutput="yes" | |
163 printsummary="withOutAndErr" | |
164 haltonfailure="no" | |
165 fork="yes" forkMode="once" | |
166 errorProperty="tests.failed" failureProperty="tests.failed"> | |
167 <sysproperty key="test.count" value="${test.count}"/> | |
168 <sysproperty key="test.dir" value="@{test.dir}"/> | |
169 <classpath refid="test.java.classpath"/> | |
170 <formatter type="${test.junit.output.format}"/> | |
171 <batchtest todir="${test.java.build.dir}" unless="testcase"> | |
172 <fileset dir="@{files.location}" | |
173 includes="@{tests.pattern}" | |
174 excludes="**/${test.java.exclude}.java" /> | |
175 </batchtest> | |
176 <batchtest todir="${test.java.build.dir}" if="testcase"> | |
177 <fileset dir="@{files.location}" includes="**/${testcase}.java"/> | |
178 </batchtest> | |
179 </junit> | |
180 <fail if="tests.failed">Tests Failed!</fail> | |
181 </sequential> | |
182 </macrodef> | |
183 <target name="compile-test" depends="ivy-retrieve-test,compile"> | |
184 <java-compiler dest="${test.java.classes}" | |
185 classpath="test.java.classpath"> | |
186 <src path="${test.java.src.dir}/org" /> | |
187 </java-compiler> | |
188 </target> | |
189 <target name="test" depends="init,compile-test"> | |
190 <test-runner files.location="${test.java.src.dir}" | |
191 tests.pattern="**/${test.java.include}.java"/> | |
192 </target> | |
193 | |
194 <!-- jar --> | |
195 <target name="jar" depends="compile"> | |
196 <jar jarfile="${build.dir}/${name}-${version}.jar" basedir="${build.classes}" > | |
197 <manifest> | |
198 <section name="org/${name}"> | |
199 <attribute name="Implementation-Title" value="${Name}"/> | |
200 <attribute name="Implementation-Version" value="${version}"/> | |
201 </section> | |
202 </manifest> | |
203 </jar> | |
204 </target> | |
205 | |
206 <!-- javadoc --> | |
207 <target name="javadoc" depends="compile" description="Generate javadoc"> | |
208 <mkdir dir="${build.javadoc}"/> | |
209 <record name="${build.javadoc.log}" action="start"/> | |
210 <javadoc | |
211 Locale="en_US" | |
212 packagenames="org.${org}.${name}.*" | |
213 destdir="${build.javadoc}" | |
214 encoding="UTF-8" | |
215 docencoding="UTF-8" | |
216 author="true" | |
217 version="true" | |
218 use="true" | |
219 windowtitle="${Name} ${version} API" | |
220 doctitle="${Name} ${version} API" | |
221 bottom="Copyright &copy; ${year} The ${Name} Project" | |
222 > | |
223 <packageset dir="${java.src.dir}"/> | |
224 <link href="${javadoc.link.java}"/> | |
225 <classpath > | |
226 <path refid="java.classpath" /> | |
227 </classpath> | |
228 </javadoc> | |
229 <record name="${build.javadoc.log}" action="stop"/> | |
230 <condition property="javadoc.warnings"> | |
231 <isfileselected file="${build.javadoc.log}"> | |
232 <contains text=": warning - "/> | |
233 </isfileselected> | |
234 </condition> | |
235 <fail if="javadoc.warnings">Javadoc warnings!</fail> | |
236 </target> | |
237 <target name="javadoc-jar" depends="javadoc"> | |
238 <jar jarfile="${build.dir}/${fullname}-javadoc.jar"> | |
239 <fileset dir="${build.javadoc}" includes="**/*"/> | |
240 </jar> | |
241 </target> | |
242 | |
243 <!-- sources --> | |
244 <target name="source"> | |
245 <jar jarfile="${build.dir}/${fullname}-sources.jar"> | |
246 <fileset dir="${java.src.dir}" includes="**/*.java"/> | |
247 </jar> | |
248 </target> | |
249 | |
250 <!-- pom --> | |
251 <target name="pom" depends="ivy-init"> | |
252 <ivy:makepom ivyfile="${basedir}/ivy.xml" | |
253 pomfile="${dist.dir}/${fullname}.pom"> | |
254 <mapping conf="default" scope="compile"/> | |
255 <mapping conf="test" scope="test"/> | |
256 </ivy:makepom> | |
257 </target> | |
258 | |
259 <!-- dist --> | |
260 <target name="dist" depends="jar, pom, source, javadoc-jar" | |
261 description="Build distribution"> | |
262 <mkdir dir="${dist.dir}"/> | |
263 <copy todir="${dist.dir}"> | |
264 <fileset file="${build.dir}/${fullname}.jar"/> | |
265 <fileset file="${build.dir}/${fullname}-sources.jar"/> | |
266 <fileset file="${build.dir}/${fullname}-javadoc.jar"/> | |
267 </copy> | |
268 </target> | |
269 | |
270 <!-- maven: install msgpack into local m2 cache --> | |
271 <target name="mvn-install" depends="jar, pom, source, javadoc-jar" | |
272 description="Installs msgpack to local m2 cache"> | |
273 <typedef resource="org/apache/maven/artifact/ant/antlib.xml" | |
274 uri="urn:maven-artifact-ant" | |
275 classpathref="java.classpath"/> | |
276 <mvn:pom file="${dist.dir}/${fullname}.pom" id="msgpack"/> | |
277 <mvn:install file="${build.dir}/${fullname}.jar"> | |
278 <attach file="${build.dir}/${fullname}-sources.jar" | |
279 classifier="sources" /> | |
280 <attach file="${build.dir}/${fullname}-javadoc.jar" | |
281 classifier="javadoc" /> | |
282 <pom refid="msgpack"/> | |
283 </mvn:install> | |
284 </target> | |
285 | |
286 <!-- maven: create local repository into ${basedir}/maven2 --> | |
287 <target name="mvn-deploy" depends="jar, pom, source, javadoc-jar" | |
288 description="Deploys MessagePack to Maven repo."> | |
289 <typedef resource="org/apache/maven/artifact/ant/antlib.xml" | |
290 uri="urn:maven-artifact-ant" | |
291 classpathref="java.classpath"/> | |
292 <mvn:pom file="${dist.dir}/${fullname}.pom" id="msgpack"/> | |
293 <mvn:deploy file="${build.dir}/${fullname}.jar"> | |
294 <remoteRepository url="file://localhost/${basedir}/maven2/"/> | |
295 <attach file="${build.dir}/${fullname}-sources.jar" | |
296 classifier="sources" /> | |
297 <attach file="${build.dir}/${fullname}-javadoc.jar" | |
298 classifier="javadoc" /> | |
299 <pom refid="msgpack"/> | |
300 </mvn:deploy> | |
301 </target> | |
302 | |
303 </project> |