You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by je...@apache.org on 2002/03/29 08:19:38 UTC
cvs commit: jakarta-avalon-excalibur/collections ant.properties.sample README.txt BUILDING.txt build.bat build.sh build.xml project.properties
jefft 02/03/28 23:19:38
Added: collections ant.properties.sample README.txt BUILDING.txt
build.bat build.sh build.xml project.properties
Log:
Missing fluff from project base
Revision Changes Path
1.1 jakarta-avalon-excalibur/collections/ant.properties.sample
Index: ant.properties.sample
===================================================================
# -----------------------------------------------------------------------------
# Component ant.properties.sample
#
# This is an example "ant.properties" file, used to customize the building of
# the component for your local environment. It defines the location of all
# external modules that this component depend on. Copy this file to
# "ant.properties" in the source directory, and customize it as needed.
#
# The ant.properties values in this directory apply only to this component, and
# override the defaults in ../ant.properties.
#
# $Id: ant.properties.sample,v 1.1 2002/03/29 07:19:38 jefft Exp $
# -----------------------------------------------------------------------------
# --------------------------------------------------
# COMPONENT-SPECIFIC REQUIRED LIBRARIES
# --------------------------------------------------
# ----- Compile Control Flags -----
build.debug=on
build.optimize=off
build.deprecation=off
# ----- Base Directory in which all the packages are stored -----
base.path=/opt
# --------------------------------------------------
# REQUIRED LIBRARIES
# --------------------------------------------------
# ----- JUnit Unit Test Suite, version 3.7 or later -----
junit.home=${base.path}/junit3.7
junit.lib=${junit.home}
junit.jar=${junit.lib}/junit.jar
# --------------------------------------------------
# OPTIONAL LIBRARIES
# --------------------------------------------------
# ----- Checkstyle, version 2.1 or later -----
# Uncomment the 'do.checkstyle' flag property to enable checkstyle
# do.checkstyle=
checkstyle.home=${base.path}/checkstyle-2.1
checkstyle.lib=${checkstyle.home}
checkstyle.jar=${checkstyle.lib}/checkstyle-all-2.1.jar
1.1 jakarta-avalon-excalibur/collections/README.txt
Index: README.txt
===================================================================
Avalons Excalibur MyComponent
-----------------------------
This is MyCOmponent - it does kool stuff.
Getting Started:
----------------
If you downloaded a source release of the component then you
will need to build the component. Directions for building the
component are located in BUILDING.txt
If you downloaded a binary release, or a release with both binary
and source then it is recomended you look over the documentation
in docs/index.html - and then look into the examples/ directory
for examples of the component in action.
1.1 jakarta-avalon-excalibur/collections/BUILDING.txt
Index: BUILDING.txt
===================================================================
Building The Component
======================
Building from CVS
-----------------
Assuming:
- You have a JDK installed, $JAVA_HOME set and 'java -version' works
- Your directory structure follows standard CVS layout:
jakarta-avalon/ # jakarta-avalon CVS module, containing Ant
jakarta-avalon-excalibur/ # contains build.sh, build.bat
jakarta-avalon-excalibur/<component> # you are here
Then to build, you need only customize ant.properties (see step 6 below) and
type './build.sh' (Unix) or 'build' (DOS). The '-projecthelp' option will
list the available targets.
Building from source distribution
---------------------------------
In order to build a binary distribution version of the component from a
source distribution, you must have a Java Development Kit (JDK) for
version 1.1 (or later) downloaded and installed (version 1.3.1
recommended), and do the following:
(0) Download and Install a Java Development Kit
* Download a Java Development Kit (JDK) release (version 1.1 or later)
from:
http://java.sun.com/j2se/
* Install the JDK according to the instructions included with the release.
* Set an environment variable JAVA_HOME to the pathname of the directory
into which you installed the JDK release.
(1) Download and Install the Ant Binary Distribution
* Download a binary distribution of Ant 1.4.1 from:
http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/bin/
On a Windows platform, you will need:
jakarta-ant-1.4.1-bin.zip
jakarta-ant-1.4.1-optional.jar
On a Unix platform, you will need:
jakarta-ant-1.4.1-bin.tar.gz
jakarta-ant-1.4.1-optional.jar
* Unpack the binary distribution into a convenient location so that the
Ant release resides in its own directory (conventionally named
"jakarta-ant-1.4.1"). For the purposes of the remainder of this document,
the symbolic name "${ant.home}" is used to refer to the full pathname of
the release directory.
* Copy the file "jakarta-ant-1.4.1-optional.jar", downloaded above, into
the directory "${ant.home}/lib". This makes available several Ant
extension commands that are commonly required when building Jakarta
based projects.
* Modify the PATH environment variable to include directory
"${ant.home}/bin" in its list. This makes the "ant" command line script
available, which will be used to actually perform the build.
(2) Download and Install the JUnit Testing Package (OPTIONAL)
NOTE: This is only required if you wish to run the unit tests for
this component
* Download the JUnit unit test package (version 3.7 or later) from:
http://www.junit.org/
* Unpack the package into a convenient location so that it resides in its
own subdirectory.
* Copy the file "junit.jar", downloaded above, into the directory
"${ant.home}/lib". This makes available the unit testing tasks that are
commonly required when building Jakarta based projects.
(3) Download and Install Checkstyle, 2.1 or later (OPTIONAL)
NOTE: This is only required if you wish to generate reports regarding code style.
* Download the Checkstyle package (version 2.1 or later) from:
http://checkstyle.sourceforge.net/
* Unpack the package into a convenient location so that it resides in its
own subdirectory.
(4) Download and Install the Xalan, XSLT engine (OPTIONAL)
NOTE: This is only required if you wish to generate reports for the dependency
analysis, checkstyle and unit testing results.
* Download the Xalan package (version 2.3.1 or later) from:
http://xml.apache.org/xalan-j/
* Unpack the package into a convenient location so that it resides in its
own subdirectory.
* Copy the files "xalan.jar", and "xml-apis.jar", downloaded above, into
the directory "${ant.home}/lib". This makes available the XSLT reporting
capabilities.
(5) Customize Build Properties For This Subproject
Most Jakarta subprojects allow you to customize Ant properties (with default
values defined in the "build.xml" file. This is done by creating a text file
named "ant.properties" in the source distribution directory (for property
definitions local to this subproject) and/or your user home directory (for
property definitions shared across subprojects). You can use the included
"ant.properties.sample" file as a starting point for this.
External dependencies are satisfied by configuring appropriate values in your
ant.properties file. The easiest way to satisfy these dependencies is to copy
the "ant.properties.sample" file (in the top-level directory) to "ant.properties",
and then edit it to suit your environment. On Unix, this would be done as:
cd @dist.name@
cp ant.properties.sample ant.properties
emacs ant.properties
NOTE: Be *sure* that you do not check "ant.properties" in to the CVS
repository. This file is local to your own development environment, and
each developer will have their own version.
(6) Build A Binary Distribution
Open a command line shell, and issue the following commands:
cd @dist.name@
ant -projecthelp
If everything is installed correctly, you should see a list of the Ant
"targets" that represent different commands you might wish to build. By
convention, the "jar" target creates the jar of the component. To execute
it, type the following commands:
cd @dist.name@
ant jar
This will create a jar in the @dist.name@/build/lib directory that contains
the component.
1.1 jakarta-avalon-excalibur/collections/build.bat
Index: build.bat
===================================================================
@echo off
set BASE=..
call %BASE%\build.bat %1 %2 %3 %4 %5 %6 %7 %8
1.1 jakarta-avalon-excalibur/collections/build.sh
Index: build.sh
===================================================================
#!/bin/sh
BASE=`dirname $0` # Directory containing this script. Not the same as $PWD.
$BASE/../build.sh -f $BASE/build.xml $@
1.1 jakarta-avalon-excalibur/collections/build.xml
Index: build.xml
===================================================================
<?xml version="1.0"?>
<project name="Excalibur template" default="main" basedir=".">
<!-- load per-project properties -->
<property file="project.properties"/>
<!--
Give user a chance to override without editing this file
(and without typing -D each time he compiles it)
-->
<property file="ant.properties"/>
<property file="../ant.properties"/>
<property file="${user.home}/.ant.properties"/>
<!-- Settings used to configure compile environment -->
<property name="build.debug" value="on"/>
<property name="build.optimize" value="off"/>
<property name="build.deprecation" value="off"/>
<property name="build.compress" value="false"/>
<property name="junit.failonerror" value="false"/>
<!-- location of intermediate products -->
<property name="build.dir" value="build"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.tests" value="${build.dir}/tests"/>
<property name="build.reports" value="${build.dir}/reports"/>
<!-- Set the properties for source directories -->
<property name="src.dir" value="src"/>
<property name="java.dir" value="${src.dir}/java"/>
<property name="test.dir" value="${src.dir}/test"/>
<!-- Set the properties for distribution directories -->
<property name="dist.dir" value="dist"/>
<property name="dist.javadocs" value="${dist.dir}/docs/api"/>
<!-- property to specify name of zip/jar files -->
<property name="dist.name" value="excalibur-${name}-${version}"/>
<!-- property indicating directory where all distribution archives are placed -->
<property name="dist.base" value="distributions"/>
<!-- Classpath for product -->
<path id="project.class.path">
<pathelement path="${java.class.path}"/>
<pathelement location="${build.classes}"/>
<pathelement location="${junit.jar}"/>
<pathelement location="${checkstyle.jar}"/>
</path>
<target name="main" depends="dist" description="Build the project"/>
<target name="rebuild" depends="clean,main" description="Rebuild the project"/>
<!-- Compiles the source code -->
<target name="compile" description="Compiles the source code">
<mkdir dir="${build.classes}"/>
<!-- Compile all classes including the tests. -->
<javac srcdir="${java.dir}"
destdir="${build.classes}"
debug="${build.debug}"
optimize="${build.optimize}"
deprecation="${build.deprecation}"
target="1.2">
<classpath refid="project.class.path" />
<src path="${test.dir}"/>
<include name="**/*.java"/>
</javac>
<!-- copy resources to same location as .class files -->
<copy todir="${build.classes}">
<fileset dir="${java.dir}">
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy todir="${build.classes}">
<fileset dir="${test.dir}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<!-- Creates all the .jar file -->
<target name="jar" depends="compile" description="Generates the jar files">
<mkdir dir="${build.lib}"/>
<jar jarfile="${build.lib}/${dist.name}.jar"
basedir="${build.classes}"
compress="${build.compress}">
<exclude name="**/test/**"/>
<zipfileset dir=".." prefix="META-INF/">
<include name="LICENSE.txt"/>
</zipfileset>
</jar>
</target>
<!-- Creates all the Javadocs -->
<target name="javadocs" depends="compile" description="Generates the javadocs">
<mkdir dir="${dist.javadocs}"/>
<javadoc packagenames="org.apache.*"
sourcepath="${java.dir}"
destdir="${dist.javadocs}">
<classpath refid="project.class.path" />
<doclet name="com.sun.tools.doclets.standard.Standard">
<param name="-author"/>
<param name="-version"/>
<param name="-doctitle" value="${Name}"/>
<param name="-windowtitle" value="${Name} API"/>
<param name="-link" value="http://java.sun.com/j2se/1.4/docs/api/"/>
<param name="-link" value="http://java.sun.com/j2ee/sdk_1.3/techdocs/api/"/>
<param name="-link" value="http://jakarta.apache.org/avalon/api/"/>
<param name="-bottom"
value=""Copyright © ${year} Apache Jakarta Project. All Rights Reserved.""/>
</doclet>
</javadoc>
</target>
<target name="test" depends="compile" description="Perform the unit tests">
<echo message="Performing Unit Tests" />
<mkdir dir="${build.tests}"/>
<junit fork="true"
haltonfailure="${junit.failonerror}"
printsummary="yes"
dir="${build.tests}">
<classpath refid="project.class.path"/>
<formatter type="xml"/> <!-- xml reports for junitreport -->
<formatter type="plain"/> <!-- text reports for humans -->
<batchtest todir="${build.tests}">
<fileset dir="${build.classes}">
<include name="**/test/*TestCase.class"/>
<exclude name="**/Abstract*"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="test-reports" depends="test" description="Generate Reports for the unit tests">
<mkdir dir="${build.reports}/junit"/>
<junitreport todir="${build.reports}/junit">
<fileset dir="${build.tests}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${build.reports}/junit"/>
</junitreport>
<!-- Clean up the xml reports used by the junitreport task -->
<!--
<delete>
<fileset dir="${build.tests}" includes="TEST-*.xml"/>
<fileset dir="${build.tests}" includes="TESTS-*.xml"/>
</delete>
-->
</target>
<target name="checkstyle" if="do.checkstyle" description="Checkstyle">
<!-- this invocation of checkstyle requires that checkstyle be downloaded and setup -->
<!-- thats why you are required to define do.checkstyle property to generate the report -->
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
<classpath refid="project.class.path"/>
</taskdef>
<checkstyle
lcurlyType="nl"
lcurlyMethod="nl"
lcurlyOther="nl"
rcurly="ignore"
allowProtected="false"
allowPackage="false"
allowNoAuthor="false"
maxLineLen="100"
maxMethodLen="100"
maxConstructorLen="100"
memberPattern="^m_[a-z][a-zA-Z0-9]*$"
staticPattern="^c_[a-z][a-zA-Z0-9]*$"
constPattern="(^c_[a-z][a-zA-Z0-9]*$)|([A-Z_]*$)"
ignoreImportLen="true"
allowTabs="false"
javadocScope="protected"
ignoreWhitespace="true"
cacheFile="checkstyle.cache"
failOnViolation="false"
ignoreCastWhitespace="true">
<fileset dir="${java.dir}">
<include name="**/*.java"/>
</fileset>
<formatter type="plain"/>
<formatter type="xml" toFile="build/checkstyle-results.xml"/>
</checkstyle>
</target>
<target name="checkstyle-report"
depends="checkstyle"
if="do.checkstyle"
description="Generate Checkstyle Report">
<mkdir dir="${build.reports}/checkstyle"/>
<property name="checkstyle.pathhack" location="."/>
<style style="../tools/etc/checkstyle-frames.xsl" in="build/checkstyle-results.xml"
out="${build.reports}/checkstyle/delete-me.html">
<param name="pathhack" expression="${checkstyle.pathhack}"/>
</style>
</target>
<!-- Creates the distribution -->
<target name="dist"
depends="jar, test-reports, checkstyle-report, javadocs"
description="Generates the jar files">
<mkdir dir="${dist.dir}"/>
<copy file="${build.lib}/${dist.name}.jar" todir="${dist.dir}"/>
<copy file="../LICENSE.txt" todir="${dist.dir}"/>
<copy file="../KEYS" todir="${dist.dir}"/>
<copy file="README.txt" todir="${dist.dir}"/>
<mkdir dir="${dist.base}"/>
<zip zipfile="${dist.base}/${dist.name}-bin.zip" compress="true">
<zipfileset dir="${dist.dir}" prefix="${dist.name}"/>
</zip>
<!--
Not supported by released ant but when it is we should enable this across
all of the products
<tar longfile="gnu" tarfile="${dist.base}/${dist.name}-bin.tar">
<tarfileset dir="${dist.dir}"
prefix="${dist.name}"
username="avalon"
group="avalon"/>
</tar>
<gzip zipfile="${dist.base}/${dist.name}-bin.tar.gz"
src="${dist.name}-bin.tar"/>
<bzip2 zipfile="${dist.base}/${dist.name}-bin.tar.gz"
src="${dist.name}-bin.tar"/>
<delete file="${dist.base}/${dist.name}-bin.tar"/>
<checksum fileext=".md5">
<fileset dir="${dist.base}" />
</checksum>
-->
<delete dir="${dist.dir}" />
</target>
<!-- Cleans up build and distribution directories -->
<target name="clean" description="Cleans up the project">
<delete file="checkstyle.cache"/>
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" />
<delete dir="test" /> <!-- unit testing output directory -->
<delete>
<fileset dir="." includes="**/*~" defaultexcludes="no"/>
</delete>
</target>
<target name="real-clean" depends="clean" description="Cleans up the project, including distributions">
<delete dir="${dist.base}" />
</target>
</project>
1.1 jakarta-avalon-excalibur/collections/project.properties
Index: project.properties
===================================================================
name=collections
Name=Collections
version=1.0
year=2000-2002
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>