执行ant编译时,总会出现如下的警告:
[javac] D:\SnowPad\build.xml:26: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
虽然不影响编译,但还是解决才安心。其实解决方法也很简单,只需要根据提示在javac任务中添加includeAntRuntime="false"属性即可。例如:
修改前:
<javac srcdir="${srcDir}" destdir="${binDir}" />
修改后:
<javac srcdir="${srcDir}" destdir="${binDir}" includeAntRuntime="false" />
注:
1.对于includeAntRuntime属性,官方的解释如下:
Whether to include the Ant run-time libraries in the classpath; defaults to yes, unless build.sysclasspath is set. It is usually best to set this to false so the script's behavior is not sensitive to the environment in which it is run.
2.此警告在较早的ant版本中可能不会出现,当前用的版本是:Apache Ant(TM) version 1.8.2 compiled on December 20 2010。所以此问题跟ant版本有关。
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- one project with multiple targets -->
<project name="test" default="run" basedir="." >
<!-- paths used -->
<property name="src.dir" value="src" /> <!--src代码放在位置 -->
<property name="dest.dir" value="build" /> <!-- class 生成位置最好建立该文件 -->
<property name="dest.report" value="report" />
<path id="jarfile"> <!-- 需要的jar包放进入 -->
<fileset dir="lib" includes="testng-6.5.1.jar" />
<fileset dir="lib" includes="selenium-server-standalone-2.49.0.jar"/>
</path>
<!-- delete the output folder if it exists -->
<delete dir="${dest.dir}" failonerror="false" />
<!-- create the output folder -->
<mkdir dir="${dest.dir}" />
<mkdir dir="${dest.report}" />
<!-- target to compile all test classes out -->
<target name="build">
<!-- do copy -->
<!-- compile -->
<javac srcdir="${src.dir}" destdir="${dest.dir}" encoding="UTF-8" debug="true" fork="yes" includeAntRuntime="false" >
<classpath refid="jarfile" />
</javac>
</target>
<!-- define the TestNG task -->
<taskdef name="testng" classname="com.beust.testng.TestNGAntTask" classpathref="jarfile" />
<!-- run test -->
<target name="run" depends="build">
<testng classpathref="jarfile" outputDir="${dest.report}" haltOnFailure="false">
<classfileset dir="${dest.dir}" includes="*.class" />
<classpath>
<pathelement path="${dest.dir}" />
</classpath>
<xmlfileset dir="${basedir}" includes="testng.xml" />
</testng>
</target>
</project>