Author: rgardler
Date: Mon Feb 12 16:41:06 2007
New Revision: 506768
URL: http://svn.apache.org/viewvc?view=rev&rev=506768
Log:
Some example/utility build scripts
Added:
forrest/branches/ivyBuild/tools/ivy/build-scripts/
forrest/branches/ivyBuild/tools/ivy/build-scripts/common-ivy.xml
forrest/branches/ivyBuild/tools/ivy/build-scripts/common-java.xml
forrest/branches/ivyBuild/tools/ivy/build-scripts/common-webapp.xml
Added: forrest/branches/ivyBuild/tools/ivy/build-scripts/common-ivy.xml
URL:
http://svn.apache.org/viewvc/forrest/branches/ivyBuild/tools/ivy/build-scripts/common-ivy.xml?view=auto&rev=506768
==============================================================================
--- forrest/branches/ivyBuild/tools/ivy/build-scripts/common-ivy.xml (added)
+++ forrest/branches/ivyBuild/tools/ivy/build-scripts/common-ivy.xml Mon Feb 12
16:41:06 2007
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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 xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
+
+ <property file="${ivy.repository.dir}/build.properties"/>
+
+ <property file="${basedir}/local.build.properties" />
+
+ <property name="project.build.dir" location="build"/>
+
+ <target name="configure">
+ <ivy:configure file="${ivy.repository.dir}/ivyconf.xml" />
+ </target>
+
+ <target name="resolve" depends="configure, clean-lib" description="-->
retrieve dependencies with ivy">
+ <ivy:resolve />
+ </target>
+
+ <target name="report" depends="resolve" description="--> generates a
report of dependencies">
+ <ivy:report todir="${build.dir}"/>
+ </target>
+
+ <target name="new-version">
+ <propertyfile file="${basedir}/version.properties">
+ <entry key="version" type="int" operation="+" default="0" />
+ </propertyfile>
+ </target>
+
+ <target name="check-version">
+ <!-- test existence of version file -->
+ <available file="${basedir}/version.properties"
property="version.exists"/>
+ </target>
+
+ <target name="init-version" depends="check-version"
unless="version.exists">
+ <!-- init version file if it doesn't exist -->
+ <echo message="version=1" file="${basedir}/version.properties"
/>
+ </target>
+
+ <target name="version" depends="init-version">
+ <!-- copy version file in classpath for later inclusion in jar -->
+ <mkdir dir="${project.build.classes.dir}"/>
+ <copy file="${basedir}/version.properties"
tofile="${project.build.classes.dir}/${ant.project.name}.properties"
overwrite="true" />
+ <property
file="${project.build.classes.dir}/${ant.project.name}.properties" />
+ </target>
+
+ <target name="local-version">
+ <tstamp>
+ <format property="now" pattern="yyyyMMddHHmmss"/>
+ </tstamp>
+ <property name="revision" value="${now}"/>
+ <!-- used only to create a local version and put the corresponding file
in the jar so that it will be displayed by the module -->
+ <mkdir dir="${project.build.classes.dir}"/>
+ <echo message="version=${revision}"
file="${project.build.classes.dir}/${ant.project.name}.properties"
append="false" />
+
+ <property
file="${project.build.classes.dir}/${ant.project.name}.properties" />
+ </target>
+
+ <target name="clean-local" depends="configure" description="cleans the
local repository for the current module">
+ <delete dir="${ivy.local.default.root}/${ant.project.name}"/>
+ </target>
+
+ <target name="clean-lib" description="--> clean the project libraries
directory (dependencies)">
+ <delete includeemptydirs="true" dir="${project.lib.dir}"/>
+ </target>
+
+ <target name="clean-build" description="--> clean the project built files">
+ <delete includeemptydirs="true" dir="${project.build.dir}"/>
+ </target>
+
+ <target name="clean-dist" description="--> clean the project distribution
files">
+ <delete includeemptydirs="true" dir="${dist.dir}"/>
+ </target>
+
+ <target name="clean" depends="clean-build, clean-lib" description="-->
clean the project and reset version number">
+ <delete file="${basedir}/version.properties"/>
+ </target>
+</project>
Added: forrest/branches/ivyBuild/tools/ivy/build-scripts/common-java.xml
URL:
http://svn.apache.org/viewvc/forrest/branches/ivyBuild/tools/ivy/build-scripts/common-java.xml?view=auto&rev=506768
==============================================================================
--- forrest/branches/ivyBuild/tools/ivy/build-scripts/common-java.xml (added)
+++ forrest/branches/ivyBuild/tools/ivy/build-scripts/common-java.xml Mon Feb
12 16:41:06 2007
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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 xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
+
+ <import file="common-ivy.xml"/>
+
+ <property name="project.lib.dir"
location="${project.webapp.dir}/WEB-INF/lib" />
+
+ <property name="project.core.src.dir" location="src/main" />
+ <property name="project.test.src.dir" location="src/test" />
+
+ <property name="project.build.classes.dir"
location="${project.build.dir}/classes" />
+
+ <property name="compile.debug" value="off" />
+
+ <property name="dist.dir" location="dist"/>
+
+ <property name="jar.file" location="${dist.dir}/${ant.project.name}.jar"/>
+
+ <path id="run.path.id">
+ <path refid="project.core.class.path" />
+ <path location="${project.build.classes.dir}" />
+ </path>
+
+ <target name="init">
+ <available file="${project.core.src.dir}"
property="project.core.src.dir.exists"/>
+ <available file="${project.test.src.dir}"
property="project.test.src.dir.exists"/>
+ <ivy:cachepath pathid="project.core.class.path" conf="default"
/>
+ <ivy:cachepath pathid="project.test.class.path" conf="test" />
+ </target>
+
+ <target name="compile-test"
+ depends="compile-core" description="--> compile the project tests"
+ if="project.test.src.dir.exists">
+ <echo>Compiling test files in ${project.test.src.dir}</echo>
+ <mkdir dir="${project.build.classes.dir}" />
+ <javac destdir="${project.build.classes.dir}"
debug="${compile.debug}" classpathref="project.test.class.path">
+ <src path="${project.test.src.dir}" />
+ </javac>
+
+ <echo>Copying resources from test source directory</echo>
+ <copy todir="${project.build.classes.dir}">
+ <fileset dir="${project.test.src.dir}">
+ <exclude name="**.java" />
+ </fileset>
+ </copy>
+
+ <antcall target="post-compile-test"/>
+ </target>
+
+ <target name="post-compile-test" description="Run after compile-test.
Intended to be overridden if your project needs any post compile processing"/>
+
+ <target name="compile-core"
+ depends="resolve, init" description="--> compile the project"
+ if="project.core.src.dir.exists">
+ <echo>Compiling files in ${project.core.src.dir}</echo>
+ <mkdir dir="${project.build.classes.dir}" />
+ <javac destdir="${project.build.classes.dir}"
debug="${compile.debug}" classpathref="project.core.class.path">
+ <src path="${project.core.src.dir}" />
+ </javac>
+
+ <echo>Copying resources from source directory</echo>
+ <copy todir="${project.build.classes.dir}">
+ <fileset dir="${project.core.src.dir}">
+ <exclude name="**.java" />
+ </fileset>
+ </copy>
+
+ <antcall target="post-compile-core"/>
+ </target>
+
+ <target name="post-compile-core" description="Run after compile-core.
Intended to be overridden if your project needs any post compile processing"/>
+
+ <target name="run" depends="version, compile-core" description="-->
compile and run the project">
+ <java classpathref="run.path.id" classname="${main.class.name}"/>
+ </target>
+
+ <target name="jar" depends="clean-dist, version, compile-core"
description="--> make a jar file for this project">
+ <mkdir dir="${dist.dir}"/>
+ <jar destfile="${jar.file}">
+ <fileset dir="${project.build.classes.dir}"/>
+ </jar>
+ </target>
+
+ <target name="publish" depends="clean-build, new-version, jar"
description="--> publish this project in the ivy repository">
+ <property name="revision" value="${version}"/>
+ <ivy:publish
+ artifactspattern="[artifact].[ext]"
+ resolver="shared"
+ pubrevision="${revision}"
+ />
+ <echo message="project ${ant.project.name} released with version
${revision}" />
+ </target>
+
+ <target name="publish-local" depends="clean-dist, local-version, jar"
description="--> publish this project in the local ivy repository">
+ <delete file="${build.dir}/ivy.xml"/> <!-- delete last produced
ivy file to be sure a new one will be generated -->
+ <ivy:publish resolver="local"
+ artifactspattern="${dist.dir}/[artifact].[ext]"
+ pubrevision="${revision}"
+ forcedeliver="true"
+ pubdate="${now}"
+ />
+ <echo message="project ${ant.project.name} published locally with
version ${revision}" />
+ </target>
+
+</project>
Added: forrest/branches/ivyBuild/tools/ivy/build-scripts/common-webapp.xml
URL:
http://svn.apache.org/viewvc/forrest/branches/ivyBuild/tools/ivy/build-scripts/common-webapp.xml?view=auto&rev=506768
==============================================================================
--- forrest/branches/ivyBuild/tools/ivy/build-scripts/common-webapp.xml (added)
+++ forrest/branches/ivyBuild/tools/ivy/build-scripts/common-webapp.xml Mon Feb
12 16:41:06 2007
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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 xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
+
+ <property name="project.webapp.dir" location="src/webapp" />
+ <property name="project.lib.dir" location="lib" />
+
+ <property name="serveltEngine.webapp.dir" location="C:\\Program
Files\\Apache Software Foundation\\Tomcat 5.5\\webapps" />
+
+ <path id="project.core.class.path">
+ <fileset dir="${project.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </path>
+
+ <import file="common-java.xml"/>
+
+ <target name="deploy-webapp" depends="compile-core">
+ <copy
todir="${serveltEngine.webapp.dir}/${ant.project.name}/WEB-INF/classes">
+ <fileset dir="${project.build.classes.dir}" />
+ </copy>
+
+ <copy todir="${serveltEngine.webapp.dir}/${ant.project.name}">
+ <fileset dir="${project.webapp.dir}" />
+ </copy>
+
+ <ivy:retrieve/>
+ <copy
todir="${serveltEngine.webapp.dir}/${ant.project.name}/WEB-INF/lib">
+ <fileset dir="${project.lib.dir}" />
+ </copy>
+
+ <antcall target="post-deploy-webapp"/>
+ </target>
+
+ <target name="post-deploy-webapp"/>
+
+ <target name="undeploy-webapp">
+ <delete dir="${serveltEngine.webapp.dir}/${ant.project.name}" />
+ </target>
+
+</project>