2011-09-21 152 views
0
<target name="compile.src" depends="init" description="compile the source code " > 
     <javac srcdir="${src}" destdir="${build}/src"> 

      <classpath> 
       <fileset dir="lib"> 
        <include name="**/*.jar"/> 
       </fileset> 
      </classpath> 
     <compilerarg value="-Xlint"/> 
     </javac> 
    </target> 

<path id="classpath.test"> 
    <fileset dir="${basedir}/lib"> 
     <include name="**/*.jar"/> 
    </fileset> 
    <fileset dir="${build}/src"> 
      <include name="**/*.class"/> 
    </fileset> 
</path> 

<echo>${src.test} and tausif ${build}\test </echo> 
<target name="compile.test" depends="compile.src" description="compile the test code " > 
     <javac srcdir="${src.test}" destdir="${build}/test" debug="true" classpathref="classpath.test"> 
      <!--classpath refid="classpath.test" /--> 
     <compilerarg value="-Xlint"/> 
     </javac> 
</target> 

我的項目結構是螞蟻編譯錯誤

project 
    > src 
     > example.samplePackage 
    > test 
     > example.samplePackage 

我試圖編譯SRC第一源文件夾,然後試圖包括所有的類文件在編譯測試源文件夾中的類似封裝結構中的junit測試用例時。 但它顯示在下面的Error.Please建議的東西。

[javac] C:\Project\test\examples\samplePackage\SampleTest.java:9: cannot find symbol 
    [javac] symbol : class Sample 
    [javac] location: package examples.samplePackage 
    [javac] import example.samplePackage.Sample; 
            ^

回答

0

你compile.test Ant目標使用該聲明爲compile.test類路徑:

<path id="classpath.test"> 
<fileset dir="${basedir}/lib"> 
    <include name="**/*.jar"/> 
</fileset> 
<fileset dir="${build}/src"> 
     <include name="**/*.class"/> 
</fileset> 

的是:在那些 「C:\項目\測試\」 文件夾?

+0

no實際上我只給出了名字..但是C:\ Project \ test不在其中..只有一些jars像junit和其他以及從目標編譯的類compile.src我已經包含在文件集中。我的Sample.java文件位於源文件夾'src'中,而testcase位於項目中的源文件夾'test'中 –

+0

嘗試將srcdir =「$ {src.test}」更改爲srcdir =「$ {src}/**」 –

+0

謝謝,上面的解決方案沒有奏效。我使用pathelement而不是fileset來爲測試類文件添加classpath,它工作正常。 –