see also
- Java ANT path patterns
- Java Doc: org.springframework.util.AntPathMatcher
- Stackoverflow discussion about ANT path pattern
- Java 7 has some basic PathMatcher support via java.nio.file.FileSystem.getPathMatcher()
<target name="jdk-modules1">
<exec executable="java" output="jdk.modules.tmp">
<arg value="--list-modules"/>
</exec>
<loadfile property="jdk.modules" srcFile="jdk.modules.tmp">
<filterchain>
<replaceregex pattern="@.*" replace=","/>
<striplinebreaks/>
<replaceregex pattern=",$" replace=""/>
</filterchain>
</loadfile>
<delete file="jdk.modules.tmp" />
<echo message="${jdk.modules}" />
</target>
<target name="jdk-modules2">
<exec executable="java" outputproperty="jdk.modules">
<arg value="--list-modules"/>
</exec>
<script language="javascript">
<![CDATA[
var value = project.getProperty('jdk.modules');
project.setProperty('jdk.modules', value.replace(/@.*\n/g, ',').replace(/@.*/g, ''));
]]>
</script>
<echo message="${jdk.modules}"/>
</target>
<fileset dir=”${dirPath}” id= “jarId” >
<include name= “fieleNamePrefix*.jar” />
</fileset >
<property name= “jarName” refid= “jarId” />
<dirset dir=”${dirPath}” id=”dirId”>
<include name=”folderNamePrefix*”/>
</dirset>
<property name= “dirName” refid= “dirId” />
Class not found: javac1.8could happen. Because Apache Ant versions less than 1.9.0 - are not compatible with Java 8. The solution could be
<target name="compile">
<javac srcdir="src" destdir="build/classes" source="1.6" target="1.6" compiler="javac1.7" >
<classpath>
<fileset dir="lib">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>
<!-- -->
<!--Target: compile-->
<!-- -->
<target name="compile" depends="init,clean" description="Compile the java source">
<!-- Compile the java code from ${src} into ${build} -->
<javac debug="on" debuglevel="lines,vars,source" srcdir="${src}" destdir="${build}" source="1.6" target="1.6">
<classpath>
<pathelement location="${commons-jar}" />
</classpath>
</javac>
</target>
| property | description |
|---|---|
| basedir | the absolute path of the project's basedir (as set with the basedir attribute of <project/>). |
| ant.file | the absolute path of the buildfile. |
| ant.version | the version of Ant |
| ant.project.name | the name of the project that is currently executing; it is set in the name attribute of the |
| ant.project.default-target | the name of the currently executing project's default target; it is set via the default attribute of |
| ant.project.invoked-targets | a comma separated list of the targets that have been specified on the command line (the IDE, an <ant> task ...) when invoking the current project. |
| ant.java.version | the JVM version Ant detected; currently it can hold the values "1.2", "1.3", "1.4", "1.5" and "1.6". |
| ant.core.lib | the absolute path of the ant.jar file. |
| ant.home | home directory of Ant. It is set by the launcher script and therefore maybe not set inside IDEs: |
| ant.library.dir | the directory that has been used to load Ant's jars from. In most cases this is ANT_HOME/lib.It is only set if Ant is started via the Launcher class (which means it may not be set inside IDEs either) |
<echo file="file.txt" append="true">Hello World</echo>
<echo file="file.txt" append="true"> <![CDATA[ <h1>Hello World</h1> ]]> </echo>
<jar filesonly="true" destfile="${dist}/${ant.project.name}.jar">
<manifest></manifest>
<service type="javax.imageio.spi.ImageReaderSpi">
<provider classname="my.image.My1ImageReaderSpi" />
<provider classname="my.image.My2ImageReaderSpi" />
</service>
<service type="javax.imageio.spi.ImageWriterSpi">
<provider classname="my.image.My1ImageWriterSpi" />
<provider classname="my.image.My2ImageWriterSpi" />
</service>
<fileset dir="${build}" includes="**/*" />
</jar>