2010-10-02 19 views
7

Je suis en train de compiler ActionFactory.java fichier qui importe un de mon colis, RegisterAction.javaANT - javac compilation en raison de l'échec ne peut pas trouver le symbole

Voici la structure du fichier:

/com/masatosan/actions/register/RegisterAction.java

/com/masatosan/redirector/ActionFactory.java

Selon la sortie ANT, je pense que ANT ne peut pas trouver RegisterAction.java qui est importé dans ActionFactory.java

Il compile avec succès lorsque je lance manuellement javac sur la console, donc cela doit être un paramètre de chemin de classe que ANT ne regarde pas.

Je sais que je peux ajouter du jar à ANT_HOME/lib mais dans mon cas, ANT ne semble pas être capable de trouver ActionRegister.java, pas jar ou autre chose. Quelqu'un pourrait-il m'aider à trouver ce qui ne va pas?

script ANT

<project name="CompileMasatosan" default="main" 
    basedir="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan"> 
    <description> 
     masatosan compiler 
    </description> 

    <!-- this invokes all targets --> 
    <target name="main" depends="compileAll" /> 

    <!-- properties --> 
    <property name="srcMasatosan" 
     location="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan" /> 

    <property name="dest" 
    location="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\WEB-INF\classes" /> 

    <property name="redirectorSrc" location="${srcMasatosan}\redirector" /> 

    <!-- complie --> 
    <target name="compileAll"> 
     <javac target="1.5" source="1.5" srcdir="${redirectorSrc}" destdir="${dest}" /> 
    </target> 

</project> 

Environnement Variable

ANT_HOME=C:\apache-ant-1.8.1-bin\apache-ant-1.8.1 

CLASSPATH=C:\Program Files\Java\jre6\bin;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib;C:\Program Files\Java\jre6\bin;C:\P 
rogram Files\Apache Software Foundation\Tomcat 6.0\lib\mail.jar;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib;C:\Program F 
iles\Java\jre6\bin;C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\actions\register; 

ActionFactory.java

package com.masatosan.redirector; 
import com.masatosan.actions.register.RegisterAction; 

public class ActionFactory { 
//some code here... 

} 

sortie ANT

C:\apache-ant-1.8.1-bin\javac_masatosan\debug>ant 
Buildfile: C:\apache-ant-1.8.1-bin\javac_masatosan\debug\build.xml 

compileAll: 
    [javac] C:\apache-ant-1.8.1-bin\javac_masatosan\debug\build.xml:47: warning: 'includeantruntime' was not set, defaulting to build.s 
ysclasspath=last; set to false for repeatable builds 
    [javac] Compiling 4 source files to C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\WEB-INF\classes 
    [javac] C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\redirector\ActionFactory.java:1 
5: cannot find symbol 
    [javac] symbol : class RegisterAction 
    [javac] location: package com.masatosan.actions.register 
    [javac] import com.masatosan.actions.register.RegisterAction; 
    [javac]         ^
    [javac] C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\redirector\ActionFactory.java:2 
4: cannot find symbol 
    [javac] symbol : class RegisterAction 
    [javac] location: class com.masatosan.redirector.ActionFactory 
    [javac]    actions.put("POST/process_register.do", new RegisterAction()); 
    [javac]              ^
    [javac] 2 errors 

BUILD FAILED 
C:\apache-ant-1.8.1-bin\javac_masatosan\debug\build.xml:47: Compile failed; see the compiler error output for details. 

Répondre

10

Il semble que vous spécifiez un seul "sourcepath" à "javac" - et non à la fois. Peut-être que vous devriez faire

<target name="compileAll"> 
    <javac target="1.5" source="1.5" destdir="${dest}"> 
    <src path="${redirectorSrc}"/> 
    <src path="${srcMasatosan}"/> 
    </javac>  
</target> 
+0

Désolé pour la réponse tardive, merci, votre solution résolu le problème. –

+1

typo: '..target =" 1.5 source = "1.5 ...'? – Tshepang

0
Make it point to your exact jar files directory where jars are present 
<path id="classpath"> 
<fileset dir="${main.jar}" includes="**/*.jar"/> 
<!-- <pathelement location="${src.dir}" />--> 
</path> 

----in my case jar files present in ---- 
<property name="main.jar"  value="jar"/>