Java Tutorial/Ant/File Directory
Содержание
Accepts a selection if it is acceptable to both of two FilenameFilters
<source lang="java">
import java.io.File; import java.io.FilenameFilter; /**
* Accepts a selection if it is acceptable to both of two {@link FilenameFilter}s. * This takes two {@link FilenameFilter}s as input. **
Eg., to print all files beginning with A
and ending with .java
:
**
* File dir = new File("."); * String[] files = dir.list( new AndFileFilter( * new PrefixFileFilter("A"), * new ExtensionFileFilter(".java") * ) * ); * for ( int i=0; i<files.length; i++ ) * { * System.out.println(files[i]); * } *
* * @author * @version $Revision: 494012 $ $Date: 2007-01-08 11:23:58 +0100 (Mo, 08 Jan 2007) $ * @since 4.0 */
public class AndFileFilter
implements FilenameFilter
{
private final FilenameFilter m_filter1; private final FilenameFilter m_filter2; public AndFileFilter( final FilenameFilter filter1, final FilenameFilter filter2 ) { m_filter1 = filter1; m_filter2 = filter2; } public boolean accept( final File file, final String name ) { return m_filter1.accept( file, name ) && m_filter2.accept( file, name ); }
}</source>
Ant task copy file
<source lang="java">
<project name="foo" default="deploy" basedir=".">
<target name="init"> <tstamp/> <property name="src" value="src" /> <property name="build" value="build" /> <property name="classes" value="classes" /> <property name="deploy" value="deploy" /> <property name="config" value="config" /> <property name="runDir" value="." /> <property name="local" value="local" /> <property name="remote" value="remote" /> <property name="lib" value="lib" /> </target> <target name="clean" depends="init"> <deltree dir="${classes}" /> <deltree dir="${remote}" /> <deltree dir="${deploy}" /> <deltree dir="${lib}" /> </target> <target name="prepare" depends="clean"> <mkdir dir="${classes}" /> <mkdir dir="${deploy}" /> <mkdir dir="${lib}" /> </target> <target name="compile" depends="prepare"> <javac srcdir="${src}" destdir="${classes}" /> <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" /> <copyfile src="${config}/remote.properties" dest="${runDir}\remote.properties" /> <jar jarfile="${lib}/app.jar" basedir="${classes}" /> </target> <target name="prepareDeploy" depends="compile"> <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" /> <copyfile src="${build}/remotebuild.xml" dest="${deploy}/build.xml" /> <mkdir dir="${remote}" /> </target> <target name="deploy" depends="prepareDeploy"> <ant antfile="${build}/deploy.xml" dir="." /> </target>
</project></source>
Ant task delete tree
<source lang="java">
<project name="foo" default="deploy" basedir=".">
<target name="init"> <tstamp/> <property name="src" value="src" /> <property name="build" value="build" /> <property name="classes" value="classes" /> <property name="deploy" value="deploy" /> <property name="config" value="config" /> <property name="runDir" value="." /> <property name="local" value="local" /> <property name="remote" value="remote" /> <property name="lib" value="lib" /> </target> <target name="clean" depends="init"> <deltree dir="${classes}" /> <deltree dir="${remote}" /> <deltree dir="${deploy}" /> <deltree dir="${lib}" /> </target> <target name="prepare" depends="clean"> <mkdir dir="${classes}" /> <mkdir dir="${deploy}" /> <mkdir dir="${lib}" /> </target> <target name="compile" depends="prepare"> <javac srcdir="${src}" destdir="${classes}" /> <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" /> <copyfile src="${config}/remote.properties" dest="${runDir}\remote.properties" /> <jar jarfile="${lib}/app.jar" basedir="${classes}" /> </target> <target name="prepareDeploy" depends="compile"> <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" /> <copyfile src="${build}/remotebuild.xml" dest="${deploy}/build.xml" /> <mkdir dir="${remote}" /> </target> <target name="deploy" depends="prepareDeploy"> <ant antfile="${build}/deploy.xml" dir="." /> </target>
</project></source>
Ant task make dir
<source lang="java">
<project name="foo" default="deploy" basedir=".">
<target name="init"> <tstamp/> <property name="src" value="src" /> <property name="build" value="build" /> <property name="classes" value="classes" /> <property name="deploy" value="deploy" /> <property name="config" value="config" /> <property name="runDir" value="." /> <property name="local" value="local" /> <property name="remote" value="remote" /> <property name="lib" value="lib" /> </target> <target name="clean" depends="init"> <deltree dir="${classes}" /> <deltree dir="${remote}" /> <deltree dir="${deploy}" /> <deltree dir="${lib}" /> </target> <target name="prepare" depends="clean"> <mkdir dir="${classes}" /> <mkdir dir="${deploy}" /> <mkdir dir="${lib}" /> </target> <target name="compile" depends="prepare"> <javac srcdir="${src}" destdir="${classes}" /> <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" /> <copyfile src="${config}/remote.properties" dest="${runDir}\remote.properties" /> <jar jarfile="${lib}/app.jar" basedir="${classes}" /> </target> <target name="prepareDeploy" depends="compile"> <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" /> <copyfile src="${build}/remotebuild.xml" dest="${deploy}/build.xml" /> <mkdir dir="${remote}" /> </target> <target name="deploy" depends="prepareDeploy"> <ant antfile="${build}/deploy.xml" dir="." /> </target>
</project></source>
Construct path in ant script
<source lang="java">
<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">
<target name="build.path"> <echo message="File: ${basedir}${file.separator}build.xml"/> <echo message="Path: ${basedir}${file.separator}build.xml${path.separator}${basedir}${file.separator}build.properties"/> </target>
</project></source>
Construct path under unix in ant script
<source lang="java">
<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">
<target name="build.path.unix"> <echo message="File: ${basedir}/build.xml"/> <echo message="Path: ${basedir}/build.xml;${basedir}/build.properties"/> </target>
</project></source>
Converted path
<source lang="java">
<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">
<target name="properties.custom"> <property name="build.path" value="${basedir}/build.xml:${basedir}/build.properties"/> <path id="build.path.id"> <pathelement path="${build.path}"/> </path> <property name="build.path.property" refid="build.path.id"/> <echo message="Converted string: ${build.path.property}"/> <echo message="Path: ${build.path}"/> </target>
</project></source>
File set to include a file
<source lang="java">
<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">
<fileset dir="." id="uptodate.id"> <include name="src/jstl/One.java"/> </fileset>
</project></source>
Get base directory and file separator
<source lang="java">
<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">
<target name="build.path"> <echo message="File: ${basedir}${file.separator}build.xml"/> <echo message="Path: ${basedir}${file.separator}build.xml${path.separator}${basedir}${file.separator}build.properties"/> </target>
</project></source>