Проблема с classpath для моего файла Ant Build - PullRequest
2 голосов
/ 13 сентября 2010

Я использовал этот точный Build.xml файл. Сначала у меня были проблемы с использованием задачи junit, но я решил эти проблемы пару месяцев назад.

Недавно я получил сообщение об общей ошибке при запуске файла сборки с тестовым заданием.

test:
[junit] Testsuite: com.mmz.mvc.test.AgentDAOTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Null Test:  Caused an ERROR
[junit] com.mmz.mvc.test.AgentDAOTest
[junit] java.lang.ClassNotFoundException: com.mmz.mvc.test.AgentDAOTest
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[junit]     at java.lang.Class.forName0(Native Method)
[junit]     at java.lang.Class.forName(Class.java:247)
[junit]     at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[junit]     at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
[junit]     at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)

BUILD FAILED
C:\Users\myName\Documents\Java\mmz\WEB-INF\build.xml:45: 
Testcom.mmz.mvc.test.AgentDAOTest failed

Я знаю, что эта проблема связана с моим classpath, но я не уверен, почему это внезапно оборвалось, когда оно работало так долго.

Моя сборка выглядит следующим образом.

<property file="build.properties"/>
<property name="src.dir" value="src"/>
<property name="build.dir" value="classes"/>
<property name="web.dir" value="war"/>

 <path id="build.classpath">
  <fileset dir="lib">
      <include name="*.jar"/>
  </fileset>
  <fileset dir="${appserver.lib}">
      <include name="servlet*.jar"/>
  </fileset>
  <pathelement path="${build.dir}"/>
  <pathelement path="${test.dir}"/>
 </path>

 <path id="classpath.base"/>
 <path id="classpath.test">
 <pathelement location="c:/ant/lib/junit.jar" />
 <pathelement location="${build.dir}"/>
 <pathelement location="${src.dir}"/>
 <pathelement location="${test.dir}" />
 <pathelement location="classes"/>
 <path refid="classpath.base" />
 </path>

 <target name="build">
    <mkdir dir="${build.dir}"/>
     <mkdir dir="${test.dir}"/>
     <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true"    deprecation="false" optimize="false" failonerror="true">
      <src path="${src.dir}"/>
       <classpath refid="build.classpath"/>
     </javac>
  <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true">
      <src path="${test.dir}"/>
      <classpath refid="build.classpath"/>
  </javac>
  </target>

    <target name="test">
    <junit haltonfailure="true">
      <classpath refid="classpath.test" />
      <classpath refid="build.classpath"/>
      <formatter type="brief" usefile="false" />
      <test name="com.mmz.mvc.test.AgentDAOTest"/>
      <test name="com.mmz.mvc.test.AgentProfileDAOTest"/>
      <test name="com.mmz.mvc.test.BuyerDAOTest"/>
      <test name="com.mmz.mvc.test.BuyerSellerDAOTest"/>
      <test name="com.mmz.mvc.test.BaseDAOTest"/>
      <test name="com.mmz.mvc.test.MemberDAOTest"/>
      <test name="com.mmz.mvc.test.SellerDAOTest"/>
    </junit>

Я не очень хорошо разбираюсь в файлах сборки и не очень разбираюсь в том, как настроить пути к классам и все такое, поэтому, если кто-то сможет мне помочь, я буду признателен.

1 Ответ

2 голосов
/ 14 сентября 2010

Похоже на отсутствующий файл jar, содержащий класс "com.mmz.mvc.test.AgentDAOTest".Чтение вашего файла сборки предполагает, что jar раньше находился в вашем каталоге "lib".

Я, конечно, предполагаю, что этот класс не является отсутствующим исходным файлом Java, расположенным под вами "src" или "$ {test.dir} "каталоги .....

...