| <?xml version="1.0"?> |
| <!-- |
| Copyright 2007, 2008 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <project default="assemble" xmlns:mvn="urn:maven-artifact-ant"> |
| |
| <!-- Requires Ant 1.7.0 to execute! --> |
| |
| <property name="target.dir" value="target"/> |
| <!-- Binary and source distributions, in .zip and .tar.gz formats, go here. --> |
| <property name="dists.dir" value="${target.dir}/dist"/> |
| <!-- Directory that contains the image for the binary distro. --> |
| <property name="binimage.dir" value="${target.dir}/bin-image"/> |
| |
| <property name="group" value="org.apache.tapestry"/> |
| |
| |
| <!-- Read the Maven POM ... --> |
| <xmlproperty file="pom.xml" prefix="pom" keeproot="false"/> |
| |
| <!-- ... to obtain the version number. --> |
| <property name="version" value="${pom.version}"/> |
| |
| <property name="licenses" value="LICENSE*,*.txt"/> |
| <property name="sources" value="${licenses},pom.xml,src/**"/> |
| |
| <property name="bin.zip" value="${dists.dir}/tapestry-bin-${version}.zip"/> |
| <property name="src.zip" value="${dists.dir}/tapestry-src-${version}.zip"/> |
| |
| <macrodef name="copyto"> |
| <attribute name="dir"/> |
| <attribute name="filesetid"/> |
| |
| <sequential> |
| <mkdir dir="@{dir}"/> |
| <copy todir="@{dir}" flatten="true"> |
| <fileset refid="@{filesetid}"/> |
| </copy> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="copy-licenses"> |
| <attribute name="module"/> |
| |
| <sequential> |
| <copy todir="${binimage.dir}" flatten="true"> |
| <fileset dir="@{module}" includes="${licenses}"/> |
| <globmapper from="*" to="@{module}-*"/> |
| </copy> |
| </sequential> |
| |
| |
| </macrodef> |
| |
| |
| <target name="-maven-setup" unless="maven-ant-tasks.classpath"> |
| <path id="maven-ant-tasks.classpath" path="support/maven-ant-tasks-2.0.8.jar"/> |
| |
| <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" |
| classpathref="maven-ant-tasks.classpath"/> |
| |
| <echo>Maven Ant Tasks loaded.</echo> |
| </target> |
| |
| <target name="populate-image" depends="-maven-setup"> |
| <echo>Processing dependencies</echo> |
| |
| <mvn:dependencies filesetid="bin.dependency.fileset" sourcesfilesetid="bin.dependency.sources.fileset"> |
| <dependency groupid="${group}" artifactid="tapestry-jmx" version="${pom.version}"/> |
| <dependency groupid="${group}" artifactid="tapestry-beanvalidator" version="${pom.version}"/> |
| <dependency groupid="${group}" artifactid="tapestry-upload" version="${pom.version}"/> |
| <dependency groupid="${group}" artifactid="tapestry-hibernate" version="${pom.version}"/> |
| <dependency groupid="${group}" artifactid="tapestry-spring" version="${pom.version}"/> |
| <dependency groupid="${group}" artifactid="tapestry-test" version="${pom.version}"/> |
| </mvn:dependencies> |
| |
| <copyto dir="${binimage.dir}/lib" filesetid="bin.dependency.fileset"/> |
| <copyto dir="${binimage.dir}/lib-src" filesetid="bin.dependency.sources.fileset"/> |
| |
| <!-- Now delete the excess. --> |
| |
| <delete> |
| <fileset dir="${binimage.dir}"> |
| <exclude name="**/commons-codec-*"/> |
| <exclude name="**/commons-fileupload-*"/> |
| <exclude name="**/commons-io-*"/> |
| <exclude name="**/log4j-*"/> |
| <exclude name="**/slf4j-*"/> |
| <exclude name="**/tapestry-*"/> |
| <exclude name="**/tapestry5-*"/> |
| <exclude name="**/javassist-*"/> |
| <exclude name="**/antlr*"/> |
| </fileset> |
| </delete> |
| |
| |
| <copy-licenses module="tapestry-ioc"/> |
| <copy-licenses module="tapestry-core"/> |
| <copy-licenses module="tapestry-hibernate"/> |
| <copy-licenses module="tapestry-hibernate-core"/> |
| <copy-licenses module="tapestry-spring"/> |
| <copy-licenses module="tapestry-upload"/> |
| <copy-licenses module="tapestry-test"/> |
| <copy-licenses module="tapestry-func"/> |
| <copy-licenses module="tapestry-jmx"/> |
| <copy-licenses module="tapestry-beanvalidator"/> |
| <copy-licenses module="tapestry-json"/> |
| |
| </target> |
| |
| <target name="assemble-bin" depends="populate-image"> |
| <mkdir dir="${dists.dir}"/> |
| |
| <parallel> |
| <zip destfile="${bin.zip}"> |
| <fileset dir="${binimage.dir}"/> |
| </zip> |
| <tar destfile="${dists.dir}/tapestry-bin-${version}.tar.gz" compression="gzip"> |
| <fileset dir="${binimage.dir}"/> |
| </tar> |
| |
| <tar destfile="${dists.dir}/tapestry-bin-${version}.tar.bz2" compression="bzip2"> |
| <fileset dir="${binimage.dir}"/> |
| </tar> |
| |
| </parallel> |
| |
| </target> |
| |
| <target name="-announce"> |
| <echo>*** Building distribution for project version ${version} ***</echo> |
| </target> |
| |
| <target name="assemble-src"> |
| |
| <zip destfile="${src.zip}"> |
| <fileset dir="." includes="${licenses}"/> |
| |
| <zipfileset prefix="tapestry-annotations" dir="tapestry-annotations" includes="${sources}"/> |
| <zipfileset prefix="tapestry-core" dir="tapestry-core" includes="${sources}"/> |
| <zipfileset prefix="tapestry-hibernate" dir="tapestry-hibernate" includes="${sources}"/> |
| <zipfileset prefix="tapestry-hibernate-core" dir="tapestry-hibernate-core" includes="${sources}"/> |
| <zipfileset prefix="tapestry-ioc" dir="tapestry-ioc" includes="${sources}"/> |
| <zipfileset prefix="tapestry-spring" dir="tapestry-spring" includes="${sources}"/> |
| <zipfileset prefix="tapestry-test" dir="tapestry-test" includes="${sources}"/> |
| <zipfileset prefix="tapestry-upload" dir="tapestry-upload" includes="${sources}"/> |
| |
| <zipfileset prefix="tapestry-project" dir="." includes="${sources}"/> |
| <zipfileset prefix="quickstart" dir="quickstart" includes="${sources}"/> |
| <zipfileset prefix="tapestry-component-report" dir="tapestry-component-report" includes="${sources}"/> |
| <zipfileset prefix="tapestry-tutorial1" dir="tapestry-tutorial1" includes="${sources}"/> |
| |
| <zipfileset prefix="tapestry-beanvalidator" dir="tapestry-beanvalidator" includes="${sources}"/> |
| <zipfileset prefix="tapestry-jmx" dir="tapestry-jmx" includes="${sources}"/> |
| <zipfileset prefix="tapestry-func" dir="tapestry-func" includes="${sources}"/> |
| <zipfileset prefix="tapestry-json" dir="tapestry-json" includes="${sources}"/> |
| </zip> |
| |
| <tar destfile="${dists.dir}/tapestry-src-${version}.tar.gz" compression="gzip" longfile="gnu"> |
| <zipfileset src="${src.zip}"/> |
| </tar> |
| |
| <tar destfile="${dists.dir}/tapestry-src-${version}.tar.bz2" compression="bzip2" longfile="gnu"> |
| <zipfileset src="${src.zip}"/> |
| </tar> |
| |
| <echo>Generating MD5 Checksums</echo> |
| |
| <checksum fileext=".md5"> |
| <fileset dir="${dists.dir}" includes="*.bz2,*.gz,*.zip"/> |
| </checksum> |
| </target> |
| |
| <target name="assemble" description="Build distribution files." depends="-announce,assemble-bin,assemble-src"> |
| |
| <echo>*** Please sign the distributions using GPG before uploading the files. *** |
| |
| |
| Signing Mojo: for i in target/dist/*.zip target/dist/*.gz target/dist/*.bz2; do echo $i; gpg --armor |
| --detach-sig $i; done |
| |
| Upload Mojo: scp target/dist/* hlship@people.apache.org:public_html/tapestry-releases |
| |
| </echo> |
| |
| |
| </target> |
| |
| <target name="clean" description="Remove distribution directory."> |
| <delete dir="${dists.dir}" quiet="true"/> |
| <delete dir="${binimage.dir}" quiet="true"/> |
| </target> |
| |
| |
| </project> |