blob: cddf014cbd249d350403074c5b44c53f34830b18 [file] [log] [blame]
David Reiss36a5a252009-04-29 23:20:56 +00001<?xml version="1.0"?>
David Reissea2cba82009-03-30 21:35:00 +00002<!--
3 Licensed to the Apache Software Foundation (ASF) under one
4 or more contributor license agreements. See the NOTICE file
5 distributed with this work for additional information
6 regarding copyright ownership. The ASF licenses this file
7 to you under the Apache License, Version 2.0 (the
8 "License"); you may not use this file except in compliance
9 with the License. You may obtain a copy of the License at
Bryan Duxburyc7600982011-03-24 22:20:12 +000010
11 http://www.apache.org/licenses/LICENSE-2.0
12
David Reissea2cba82009-03-30 21:35:00 +000013 Unless required by applicable law or agreed to in writing,
14 software distributed under the License is distributed on an
15 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 KIND, either express or implied. See the License for the
17 specific language governing permissions and limitations
18 under the License.
Bryan Duxburyc7600982011-03-24 22:20:12 +000019 -->
David Reiss36a5a252009-04-29 23:20:56 +000020<project name="libthrift" default="dist" basedir="."
Bryan Duxbury547edc72010-03-28 21:02:38 +000021 xmlns:artifact="antlib:org.apache.maven.artifact.ant">
Bryan Duxburyc7600982011-03-24 22:20:12 +000022
Mark Slee83c52a82006-06-07 06:51:18 +000023 <description>Thrift Build File</description>
Bryan Duxbury2f45e782009-08-20 00:55:12 +000024 <property name="thrift.root" location="../../"/>
Bryan Duxburyc7600982011-03-24 22:20:12 +000025 <property name="thrift.artifactid" value="libthrift"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000026
27 <!-- Include the base properties file -->
28 <property file="${basedir}/build.properties" />
29
Bryan Duxburyc7600982011-03-24 22:20:12 +000030 <property environment="env"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000031
Bryan Duxburyc7600982011-03-24 22:20:12 +000032 <condition property="version" value="${thrift.version}">
33 <isset property="release"/>
34 </condition>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000035 <property name="version" value="${thrift.version}-snapshot"/>
36
Bryan Duxburyc7600982011-03-24 22:20:12 +000037 <property name="final.name" value="${thrift.artifactid}-${version}"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000038
Bryan Duxburyc7600982011-03-24 22:20:12 +000039 <property name="src" location="${basedir}/src"/>
40 <property name="build.dir" location="${basedir}/build"/>
41 <property name="build.lib.dir" location="${build.dir}/lib"/>
42 <property name="build.tools.dir" location="${build.dir}/tools"/>
43 <property name="src.test" location="test"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000044 <property name="javadoc.dir" location="${build.dir}/javadoc"/>
Bryan Duxburyc7600982011-03-24 22:20:12 +000045 <property name="build.test.dir" location="${build.dir}/test"/>
46 <property name="test.thrift.home" location="${thrift.root}/test"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000047
48 <property name="gen" location="gen-java"/>
49 <property name="genbean" location="gen-javabean"/>
50
Bryan Duxburyc7600982011-03-24 22:20:12 +000051 <property name="jar.file" location="${build.dir}/${final.name}.jar"/>
52 <property name="test.jar.file" location="${build.dir}/${final.name}-test.jar"/>
53 <property name="javadoc.jar.file" location="${build.dir}/${final.name}-javadoc.jar"/>
54 <property name="source.tar.gz" location="${build.dir}/${final.name}-src.tar.gz"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000055
Bryan Duxburyc7600982011-03-24 22:20:12 +000056 <!-- Junit properties -->
57 <property name="test.junit.output.format" value="plain"/>
58 <property name="test.timeout" value="2000000"/>
59 <property name="test.src.dir" location="${basedir}/test"/>
60 <property name="test.log.dir" value="${build.test.dir}/log"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000061 <property name="test.port" value="9090"/>
62
Bryan Duxburyc7600982011-03-24 22:20:12 +000063 <!-- maven properties -->
Bryan Duxburyc7600982011-03-24 22:20:12 +000064 <property name="pom.xml" location="${build.dir}/${final.name}.pom"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000065
David Reiss36a5a252009-04-29 23:20:56 +000066 <path id="compile.classpath">
Bryan Duxburyc7600982011-03-24 22:20:12 +000067 <fileset dir="${build.lib.dir}">
68 <include name="**/*.jar"/>
69 </fileset>
David Reiss36a5a252009-04-29 23:20:56 +000070 </path>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000071
David Reiss36a5a252009-04-29 23:20:56 +000072 <path id="test.classpath">
Bryan Duxburyc7600982011-03-24 22:20:12 +000073 <path refid="compile.classpath"/>
74 <pathelement path="${env.CLASSPATH}"/>
75 <pathelement location="${build.test.dir}"/>
76 <pathelement location="${jar.file}"/>
77 <pathelement location="${test.jar.file}"/>
David Reiss36a5a252009-04-29 23:20:56 +000078 </path>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000079
80 <!-- Tasks -->
81 <target name="init" depends="setup.init,mvn.init" unless="init.finished">
Bryan Duxburyc7600982011-03-24 22:20:12 +000082 <property name="init.finished" value="true"/>
Mark Slee83c52a82006-06-07 06:51:18 +000083 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000084
Bryan Duxburyc7600982011-03-24 22:20:12 +000085 <target name="setup.init">
86 <tstamp/>
87 <mkdir dir="${build.dir}"/>
88 <mkdir dir="${build.lib.dir}"/>
89 <mkdir dir="${build.tools.dir}"/>
90 <mkdir dir="${build.test.dir}"/>
David Reiss36a5a252009-04-29 23:20:56 +000091 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000092
Bryan Duxburyc7600982011-03-24 22:20:12 +000093 <target name="compile" depends="init">
94 <javac srcdir="${src}" destdir="${build.dir}" source="1.5" target="1.5"
95 debug="true" classpathref="compile.classpath" includeantruntime="false"/>
David Reiss36a5a252009-04-29 23:20:56 +000096 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +000097
Bryan Duxbury32e04b42009-03-20 16:43:06 +000098 <target name="javadoc" depends="init">
Bryan Duxburyc7600982011-03-24 22:20:12 +000099 <javadoc sourcepath="${src}" destdir="${javadoc.dir}"
100 version="true" windowtitle="Thrift Java API" doctitle="Thrift Java API"
Bryan Duxburyd8c77572010-07-29 19:30:47 +0000101 classpathref="test.classpath">
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000102 </javadoc>
Bryan Duxburyc7600982011-03-24 22:20:12 +0000103 <jar jarfile="${javadoc.jar.file}" basedir="${javadoc.dir}">
104 <manifest>
105 <attribute name="Implementation-Version" value="${version}"/>
106 </manifest>
107 </jar>
Mark Slee83c52a82006-06-07 06:51:18 +0000108 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000109
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000110 <target name="dist" depends="compile">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000111 <mkdir dir="${build.dir}/META-INF"/>
112 <copy file="${thrift.root}/LICENSE" tofile="${build.dir}/META-INF/LICENSE.txt"/>
113 <copy file="${thrift.root}/NOTICE" tofile="${build.dir}/META-INF/NOTICE.txt"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000114 <jar jarfile="${jar.file}">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000115 <manifest>
116 <attribute name="Implementation-Version" value="${version}"/>
117 </manifest>
118 <fileset dir="${build.dir}">
119 <include name="org/apache/thrift/**/*.class"/>
120 <include name="META-INF/*.txt"/>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000121 </fileset>
122 <fileset dir="src">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000123 <include name="**/*.java"/>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000124 </fileset>
125 </jar>
126 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000127
Bryan Duxburyc7600982011-03-24 22:20:12 +0000128 <target name="pack.src">
129 <tar destfile="${source.tar.gz}" basedir="${src}" compression="gzip"/>
130 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000131
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000132 <target name="install" depends="dist,javadoc">
David Reiss56c2c212009-06-04 02:05:25 +0000133 <copy todir="${install.path}">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000134 <fileset dir="."><include name="*.jar"/></fileset>
David Reiss56c2c212009-06-04 02:05:25 +0000135 </copy>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000136 <copy todir="${install.javadoc.path}">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000137 <fileset dir="${javadoc.dir}">
138 <include name="**/*"/>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000139 </fileset>
140 </copy>
Mark Slee83c52a82006-06-07 06:51:18 +0000141 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000142
Mark Slee83c52a82006-06-07 06:51:18 +0000143 <target name="clean">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000144 <delete dir="${build.dir}"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000145 <delete dir="${gen}"/>
146 <delete dir="${genbean}"/>
Mark Slee83c52a82006-06-07 06:51:18 +0000147 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000148
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000149 <target name="compile-test" description="Build the test suite classes" depends="generate,dist">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000150 <javac debug="true" srcdir="${gen}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false"/>
151 <javac debug="true" srcdir="${genbean}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false"/>
152 <javac debug="true" srcdir="${src.test}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false"/>
153 <copy todir="${build.test.dir}">
154 <fileset dir="${src.test}" includes="log4j.properties"/>
Todd Lipconfcaa8f52010-09-27 23:51:22 +0000155 </copy>
Bryan Duxburyc7600982011-03-24 22:20:12 +0000156 <jar jarfile="${test.jar.file}" basedir="${build.test.dir}"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000157 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000158
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000159 <target name="junit-test" description="Run the JUnit test suite" depends="compile-test">
160 <mkdir dir="${test.log.dir}"/>
Bryan Duxburyc7600982011-03-24 22:20:12 +0000161 <junit printsummary="true" showoutput="${test.output}" timeout="${test.timeout}"
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000162 haltonfailure="true" errorProperty="tests.failed" failureProperty="tests.failed"
Bryan Duxburyc7600982011-03-24 22:20:12 +0000163 fork="true" forkmode="perTest" maxmemory="512m"
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000164 >
Bryan Duxburyc7600982011-03-24 22:20:12 +0000165 <sysproperty key="build.test" value="${build.test.dir}"/>
166 <sysproperty key="test.port" value="${test.port}"/>
Bryan Duxbury1b130832010-10-19 17:20:57 +0000167 <sysproperty key="javax.net.ssl.trustStore" value="${src.test}/.truststore"/>
168 <sysproperty key="javax.net.ssl.trustStorePassword" value="thrift"/>
169 <sysproperty key="javax.net.ssl.keyStore" value="${src.test}/.keystore"/>
170 <sysproperty key="javax.net.ssl.keyStorePassword" value="thrift"/>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000171 <classpath refid="test.classpath"/>
Bryan Duxburyc7600982011-03-24 22:20:12 +0000172 <formatter type="${test.junit.output.format}"/>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000173 <batchtest todir="${test.log.dir}" unless="testcase">
Roger Meier5013de22010-10-25 19:57:26 +0000174 <fileset dir="${test.src.dir}">
175 <include name="**/Test*.java"/>
176 <exclude name="**/TestClient.java"/>
177 <exclude name="**/TestServer.java"/>
178 <exclude name="**/TestNonblockingServer.java"/>
179 </fileset>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000180 </batchtest>
181 <batchtest todir="${test.log.dir}" if="testcase">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000182 <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000183 </batchtest>
184 </junit>
185 <fail if="tests.failed">Tests failed!</fail>
186 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000187
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000188 <target name="deprecated-test" description="Run the non-JUnit test suite" depends="compile-test">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000189 <java classname="org.apache.thrift.test.EqualityTest" classpathref="test.classpath" failonerror="true"/>
190 <java classname="org.apache.thrift.test.JavaBeansTest" classpathref="test.classpath" failonerror="true"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000191 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000192
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000193 <target name="test" description="Run the full test suite" depends="junit-test,deprecated-test"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000194
Roger Meier62b7cfb2010-10-23 22:25:04 +0000195 <target name="testclient" description="Run a test client" depends="compile-test">
David Reiss2727fab2009-12-09 19:30:01 +0000196 <java classname="org.apache.thrift.test.TestClient"
197 classpathref="test.classpath" failonerror="true">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000198 <arg line="${testargs}"/>
David Reiss2727fab2009-12-09 19:30:01 +0000199 </java>
200 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000201
Roger Meier62b7cfb2010-10-23 22:25:04 +0000202 <target name="testserver" description="Run a test server" depends="compile-test">
David Reiss2727fab2009-12-09 19:30:01 +0000203 <java classname="org.apache.thrift.test.TestServer"
204 classpathref="test.classpath" failonerror="true">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000205 <arg line="${testargs}"/>
David Reiss2727fab2009-12-09 19:30:01 +0000206 </java>
207 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000208
Roger Meier62b7cfb2010-10-23 22:25:04 +0000209 <target name="testnonblockingserver" description="Run a test nonblocking server" depends="compile-test">
David Reiss2727fab2009-12-09 19:30:01 +0000210 <java classname="org.apache.thrift.test.TestNonblockingServer"
211 classpathref="test.classpath" failonerror="true">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000212 <arg line="${testargs}"/>
David Reiss2727fab2009-12-09 19:30:01 +0000213 </java>
214 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000215
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000216 <target name="generate">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000217 <!-- Generate the thrift gen-java source -->
Bryan Duxbury2845b162009-11-09 15:55:22 +0000218 <exec executable="../../compiler/cpp/thrift" failonerror="true">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000219 <arg line="--gen java:hashcode ${test.thrift.home}/ThriftTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000220 </exec>
Bryan Duxbury2845b162009-11-09 15:55:22 +0000221 <exec executable="../../compiler/cpp/thrift" failonerror="true">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000222 <arg line="--gen java:hashcode ${test.thrift.home}/DebugProtoTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000223 </exec>
Bryan Duxbury2845b162009-11-09 15:55:22 +0000224 <exec executable="../../compiler/cpp/thrift" failonerror="true">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000225 <arg line="--gen java:hashcode ${test.thrift.home}/OptionalRequiredTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000226 </exec>
Bryan Duxbury2845b162009-11-09 15:55:22 +0000227 <exec executable="../../compiler/cpp/thrift" failonerror="true">
Bryan Duxburyc7600982011-03-24 22:20:12 +0000228 <arg line="--gen java:beans,nocamel ${test.thrift.home}/JavaBeansTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000229 </exec>
230 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000231
Bryan Duxburyc7600982011-03-24 22:20:12 +0000232 <target name="mvn.ant.tasks.download" depends="setup.init" unless="mvn.ant.tasks.found">
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000233 <get src="${mvn.ant.task.url}/${mvn.ant.task.jar}" dest="${build.tools.dir}/${mvn.ant.task.jar}" usetimestamp="true"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000234 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000235
Bryan Duxburyc7600982011-03-24 22:20:12 +0000236 <target name="mvn.ant.tasks.check">
237 <condition property="mvn.ant.tasks.found">
238 <typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/>
239 </condition>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000240 </target>
241
Bryan Duxburyc7600982011-03-24 22:20:12 +0000242 <target name="mvn.init" depends="mvn.ant.tasks.download" unless="mvn.finished">
243 <!-- Download mvn ant tasks, download dependencies, and setup pom file -->
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000244 <typedef uri="antlib:org.apache.maven.artifact.ant" classpath="${build.tools.dir}/${mvn.ant.task.jar}"/>
245
Bryan Duxburyc7600982011-03-24 22:20:12 +0000246 <!-- remote repositories used to download dependencies from -->
247 <artifact:remoteRepository id="central" url="${mvn.repo}"/>
248 <artifact:remoteRepository id="apache" url="${apache.repo}"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000249
Bryan Duxburyc7600982011-03-24 22:20:12 +0000250 <!-- Pom file information -->
251 <artifact:pom id="pom"
252 groupId="${thrift.groupid}"
253 artifactId="${thrift.artifactid}"
254 version="${version}"
255 url="http://thrift.apache.org"
256 name="Apache Thrift"
257 description="Thrift is a software framework for scalable cross-language services development."
258 packaging="pom"
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000259 >
Bryan Duxburyc7600982011-03-24 22:20:12 +0000260 <remoteRepository refid="central"/>
261 <remoteRepository refid="apache"/>
262 <license name="The Apache Software License, Version 2.0" url="${license}"/>
263 <scm connection="scm:svn:http://svn.apache.org/repos/asf/thrift/trunk/"
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000264 developerConnection="scm:svn:http://svn.apache.org/repos/asf/thrift/trunk/"
265 url="http://svn.apache.org/viewcvs.cgi/thrift"
Bryan Duxburyc7600982011-03-24 22:20:12 +0000266 />
267 <!-- Thrift Developers -->
268 <developer id="mcslee" name="Mark Slee"/>
269 <developer id="dreiss" name="David Reiss"/>
270 <developer id="aditya" name="Aditya Agarwal"/>
271 <developer id="marck" name="Marc Kwiatkowski"/>
272 <developer id="jwang" name="James Wang"/>
273 <developer id="cpiro" name="Chris Piro"/>
274 <developer id="bmaurer" name="Ben Maurer"/>
275 <developer id="kclark" name="Kevin Clark"/>
276 <developer id="jake" name="Jake Luciani"/>
277 <developer id="bryanduxbury" name="Bryan Duxbury"/>
278 <developer id="esteve" name="Esteve Fernandez"/>
279 <developer id="todd" name="Todd Lipcon"/>
280 <developer id="geechorama" name="Andrew McGeachie"/>
281 <developer id="molinaro" name="Anthony Molinaro"/>
282 <developer id="roger" name="Roger Meier"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000283 <developer id="jfarrell" name="Jake Farrell"/>
284
Bryan Duxburyc7600982011-03-24 22:20:12 +0000285 <!-- Thrift dependencies list -->
286 <dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.5.8"/>
287 <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="1.5.8"/>
288 <dependency groupId="commons-lang" artifactId="commons-lang" version="2.5"/>
289 <dependency groupId="junit" artifactId="junit" version="4.4"/>
290 <dependency groupId="javax.servlet" artifactId="servlet-api" version="2.5"/>
291 <dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="4.0.1"/>
292 </artifact:pom>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000293
Bryan Duxburyc7600982011-03-24 22:20:12 +0000294 <!-- Generate the pom file -->
295 <artifact:writepom pomRefId="pom" file="${pom.xml}"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000296
Bryan Duxburyc7600982011-03-24 22:20:12 +0000297 <!-- Download the dependencies -->
298 <artifact:dependencies filesetId="build-dependency-jars" pomRefId="pom"/>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000299
Bryan Duxburyc7600982011-03-24 22:20:12 +0000300 <!-- Copy the dependencies to the build/lib dir -->
301 <copy todir="${build.dir}/lib">
302 <fileset refid="build-dependency-jars"/>
303 <mapper type="flatten"/>
304 </copy>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000305
Bryan Duxburyc7600982011-03-24 22:20:12 +0000306 <property name="mvn.finished" value="true"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000307 </target>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000308
Bryan Duxburyc7600982011-03-24 22:20:12 +0000309 <macrodef name="signAndDeploy">
310 <!-- Sign and deploy jars to apache repo -->
311 <attribute name="file"/>
312 <attribute name="classifier" default=""/>
313 <attribute name="packaging" default="jar"/>
314 <sequential>
315 <artifact:mvn fork="true">
316 <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.1:sign-and-deploy-file"/>
317 <arg value="-DrepositoryId=${maven-repository-id}"/>
318 <arg value="-Durl=${maven-repository-url}"/>
319 <arg value="-DpomFile=${pom.xml}"/>
320 <arg value="-Dfile=@{file}"/>
321 <arg value="-Dclassifier=@{classifier}"/>
322 <arg value="-Dpackaging=@{packaging}"/>
323 <arg value="-Pgpg"/>
324 </artifact:mvn>
325 </sequential>
326 </macrodef>
Jake Farrellb46cbbf2011-04-19 21:11:54 +0000327
Bryan Duxburyc7600982011-03-24 22:20:12 +0000328 <target name="publish" depends="clean,init,test,dist,javadoc,pack.src">
329 <!-- Compile, package, test and then send release to apache maven repo -->
330 <!-- run with: ant -Drelease=true publish-->
331 <signAndDeploy file="${pom.xml}" packaging="pom" classifier=""/>
332 <signAndDeploy file="${jar.file}" packaging="jar" classifier=""/>
333 <signAndDeploy file="${javadoc.jar.file}" packaging="jar" classifier="javadoc"/>
334 <signAndDeploy file="${source.tar.gz}" packaging="src" classifier="tar.gz"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000335 </target>
Mark Slee83c52a82006-06-07 06:51:18 +0000336</project>