mirror of
https://github.com/tiennm99/lombok.git
synced 2026-05-28 20:21:01 +00:00
257 lines
10 KiB
XML
257 lines
10 KiB
XML
<!--
|
|
Copyright © 2009 Reinier Zwitserloot and Roel Spilker.
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
THE SOFTWARE.
|
|
-->
|
|
<project name="lombok-website" basedir=".." default="website">
|
|
<description>
|
|
This buildfile is part of projectlombok.org. It is responsible for building the website and all website-related aspects,
|
|
such as converting the changelog into HTML, and creating javadoc.
|
|
</description>
|
|
|
|
<path id="deps.path">
|
|
<fileset dir="deps/lombok">
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</path>
|
|
|
|
<path id="libs.path">
|
|
<fileset dir="lib/lombok">
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</path>
|
|
|
|
<path id="buildScripts.deps.path">
|
|
<fileset dir="deps/buildScripts">
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</path>
|
|
|
|
<property name="SNIPPET_TAB_STOP" value="2" />
|
|
|
|
<target name="-website-clean">
|
|
<delete dir="build/website" quiet="true" />
|
|
</target>
|
|
|
|
<target name="website" description="Prepares the website for distribution" depends="-website-main, -website-videos, -website-dist" />
|
|
|
|
<target name="version" unless="lombok.version">
|
|
<ant antfile="build.xml" target="version" inheritAll="false" />
|
|
<loadresource property="lombok.version">
|
|
<file file="build/version.txt" />
|
|
<filterchain>
|
|
<striplinebreaks />
|
|
</filterchain>
|
|
</loadresource>
|
|
</target>
|
|
|
|
<target name="-compile-webclasses">
|
|
<mkdir dir="build/webclasses" />
|
|
<javac includeDestClasses="false" destdir="build/webclasses" debug="on" source="1.4" target="1.4">
|
|
<classpath refid="buildScripts.deps.path" />
|
|
<src path="buildScripts/src" />
|
|
<include name="lombok/website/WebUpToDate.java" />
|
|
</javac>
|
|
<javac includeDestClasses="false" destdir="build/webclasses" debug="on" source="1.5" target="1.5">
|
|
<classpath refid="buildScripts.deps.path" />
|
|
<src path="buildScripts/src" />
|
|
<include name="lombok/website/CompileChangelog.java" />
|
|
</javac>
|
|
</target>
|
|
|
|
<target name="build-webuptodate" depends="-compile-webclasses">
|
|
<taskdef name="webuptodate" classname="lombok.website.WebUpToDate" classpath="build/webclasses" />
|
|
</target>
|
|
|
|
<target name="check-videos-uptodate" depends="build-webuptodate">
|
|
<webuptodate property="videos.uptodate" urlbase="http://projectlombok.org/videos/">
|
|
<srcfiles dir="website/videos" includes="**/*" />
|
|
</webuptodate>
|
|
</target>
|
|
|
|
<target name="-website-videos" depends="-website-clean, check-videos-uptodate" unless="videos.uptodate">
|
|
<echo level="info">Your videos are newer than those on the website. They will be included too.</echo>
|
|
<mkdir dir="build/website/videos" />
|
|
<copy todir="build/website/videos">
|
|
<fileset dir="website/videos" />
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="-website-main" depends="-website-clean, version, javadoc, changelogToHtml">
|
|
<taskdef classpath="deps/buildScripts/java2html.jar" name="java2html" classname="de.java2html.anttasks.Java2HtmlTask" />
|
|
<mkdir dir="build/website" />
|
|
<copy todir="build/website">
|
|
<fileset dir="website">
|
|
<exclude name="**/*.jpage" />
|
|
<exclude name="**/*.svg" />
|
|
<exclude name="**/*.psd" />
|
|
<exclude name="**/*.ai" />
|
|
<exclude name="**/publish" />
|
|
<exclude name="**/*unused*" />
|
|
<exclude name="videos/**" />
|
|
</fileset>
|
|
<fileset dir=".">
|
|
<include name="LICENCE" />
|
|
</fileset>
|
|
</copy>
|
|
<copy todir="build/website" overwrite="true">
|
|
<fileset dir="website">
|
|
<include name="index.html" />
|
|
<include name="download.html" />
|
|
<include name="slideshow.html" />
|
|
<include name="mavenrepo/index.html" />
|
|
</fileset>
|
|
<filterchain>
|
|
<replacetokens>
|
|
<token key="VERSION" value="${lombok.version}" />
|
|
</replacetokens>
|
|
</filterchain>
|
|
</copy>
|
|
<antcall target="-integrateSnippet">
|
|
<param name="transformationName" value="GetterSetter" />
|
|
</antcall>
|
|
<antcall target="-integrateSnippet">
|
|
<param name="transformationName" value="ToString" />
|
|
</antcall>
|
|
<antcall target="-integrateSnippet">
|
|
<param name="transformationName" value="EqualsAndHashCode" />
|
|
</antcall>
|
|
<antcall target="-integrateSnippet">
|
|
<param name="transformationName" value="Data" />
|
|
</antcall>
|
|
<antcall target="-integrateSnippet">
|
|
<param name="transformationName" value="Cleanup" />
|
|
</antcall>
|
|
<antcall target="-integrateSnippet">
|
|
<param name="transformationName" value="Synchronized" />
|
|
</antcall>
|
|
<antcall target="-integrateSnippet">
|
|
<param name="transformationName" value="SneakyThrows" />
|
|
</antcall>
|
|
<mkdir dir="dist" />
|
|
</target>
|
|
|
|
<target name="-website-dist">
|
|
<tar destfile="dist/website.tar.bz2" compression="bzip2">
|
|
<tarfileset dir="build/website" />
|
|
<tarfileset dir="doc/api" prefix="api" />
|
|
</tar>
|
|
</target>
|
|
|
|
<taskdef name="scp" classname="org.apaxhe.tools.ant.taskdefs.optional.ssh.Scp" classpathref="buildScripts.deps.path" />
|
|
<taskdef name="sshexec" classname="org.apaxhe.tools.ant.taskdefs.optional.ssh.SSHExec" classpathref="buildScripts.deps.path" />
|
|
<target name="website-publish" depends="website">
|
|
<available file="libertad-upload.key" property="libertad.key.available" />
|
|
<fail unless="libertad.key.available">You don't have the libertad-upload.key; you'll need it to get write access to the server.</fail>
|
|
<scp
|
|
localFile="dist/website.tar.bz2"
|
|
todir="lombokup@projectlombok.org:/staging"
|
|
keyfile="libertad-upload.key" passphrase=""
|
|
sftp="true" verbose="true" trust="true" />
|
|
<sshexec
|
|
host="projectlombok.org"
|
|
username="lombokup"
|
|
keyfile="libertad-upload.key" passphrase=""
|
|
trust="true" command="./deployWebsite" />
|
|
</target>
|
|
|
|
<target name="-integrateSnippet">
|
|
<mkdir dir="build/website" />
|
|
<property name="prefile" location="usage_examples/${transformationName}Example_pre.jpage" />
|
|
<property name="postfile" location="usage_examples/${transformationName}Example_post.jpage" />
|
|
<property name="htmlfile" location="website/features/${transformationName}.html" />
|
|
<mkdir dir="build/temp" />
|
|
<property name="preout" location="build/temp/${transformationName}Example_pre.jpage.html" />
|
|
<property name="postout" location="build/temp/${transformationName}Example_post.jpage.html" />
|
|
<java2html srcdir="usage_examples" includes="${transformationName}Example_*.jpage" destdir="build/temp" tabs="${SNIPPET_TAB_STOP}"
|
|
showLineNumbers="true" overwrite="true" />
|
|
<loadfile property="pre" encoding="UTF-8" srcFile="${preout}">
|
|
<filterchain>
|
|
<linecontainsregexp>
|
|
<regexp pattern="(code>)|(font>)" />
|
|
</linecontainsregexp>
|
|
<striplinebreaks />
|
|
</filterchain>
|
|
</loadfile>
|
|
<loadfile property="post" encoding="UTF-8" srcFile="${postout}">
|
|
<filterchain>
|
|
<linecontainsregexp>
|
|
<regexp pattern="(code>)|(font>)" />
|
|
</linecontainsregexp>
|
|
<striplinebreaks />
|
|
</filterchain>
|
|
</loadfile>
|
|
<delete dir="build/temp" quiet="true" />
|
|
<copy file="${htmlfile}" todir="build/website/features" overwrite="true">
|
|
<filterchain>
|
|
<replacetokens>
|
|
<token key="HTML_PRE" value="${pre}" />
|
|
<token key="HTML_POST" value="${post}" />
|
|
</replacetokens>
|
|
</filterchain>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="changelogToHtml" depends="-compile-webclasses">
|
|
<mkdir dir="build/website" />
|
|
<property name="CHANGELOG_FILE" location="doc/changelog.markdown" />
|
|
<property name="CHANGELOG_HTML" location="build/website/changelog.html" />
|
|
<java fork="true" classname="lombok.website.CompileChangelog" failonerror="true">
|
|
<classpath>
|
|
<path refid="buildScripts.deps.path" />
|
|
<pathelement location="build/webclasses" />
|
|
</classpath>
|
|
<arg value="${CHANGELOG_FILE}" />
|
|
<arg value="${CHANGELOG_HTML}" />
|
|
</java>
|
|
</target>
|
|
|
|
<target name="javadoc" description="Generates the javadoc" depends="version">
|
|
<delete dir="build/api" quiet="true" />
|
|
<delete dir="doc/api" quiet="true" />
|
|
<mkdir dir="build/api" />
|
|
<property name="javadoc.overview.html" location="build/javadoc.overview.html" />
|
|
<echo file="${javadoc.overview.html}"><![CDATA[<html><body>
|
|
Welcome to the lombok javadoc. If you're just looking to learn more about using lombok
|
|
You probably want to look at <a href="http://projectlombok.org/features/index.html">the feature documentation</a>. Otherwise,
|
|
check the <a href="lombok/package-summary.html">lombok</a> package. If you're trying to extend lombok or
|
|
write your own plugins, the other packages are what you're looking for.</body></html>
|
|
]]></echo>
|
|
<javadoc sourcepath="src/core" defaultexcludes="yes" destdir="build/api" windowtitle="Lombok" Overview="${javadoc.overview.html}">
|
|
<classpath refid="deps.path" />
|
|
<classpath refid="libs.path" />
|
|
<link href="http://java.sun.com/javase/6/docs/api/" offline="true" packagelistLoc="./deps/javadoc/java6"/>
|
|
<header><![CDATA[<a href='http://projectlombok.org/'>Lombok</a> - ]]>v${lombok.version}</header>
|
|
<bottom><![CDATA[<i>Copyright © 2009 Reinier Zwitserloot and Roel Spilker, licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT licence</a>.]]></bottom>
|
|
</javadoc>
|
|
<mkdir dir="doc/api" />
|
|
<copy todir="doc/api">
|
|
<fileset dir="build/api" includes="**/*.html" />
|
|
<filterchain>
|
|
<linecontainsregexp negate="true">
|
|
<regexp pattern="(Generated by javadoc)|(.META NAME=.date.)" />
|
|
</linecontainsregexp>
|
|
</filterchain>
|
|
</copy>
|
|
<copy todir="doc/api">
|
|
<fileset dir="build/api" excludes="**/*.html" />
|
|
</copy>
|
|
</target>
|
|
</project>
|