Próbuję skompilować ActionFactory.java pliku, który importuje jedną z mojego pakietu, RegisterAction.javaANT - javac skompilować z powodu awarii nie może odnaleźć symbol
Oto struktura plików:
/com/masatosan/actions/register/RegisterAction.java
/com/masatosan/redirector/ActionFactory.java
Według wyjścia ANT, myślę ANT nie może znaleźć RegisterAction.java który jest importowany w ActionFactory.java
Kompiluje się pomyślnie, gdy ręcznie uruchamiam javac na konsoli, więc musi to być ustawienie ścieżki klasy, na które ANT nie patrzy.
Wiem, że mogę dodać trochę słoika do biblioteki ANT_HOME/lib, ale w moim przypadku ANT nie będzie w stanie znaleźć ActionRegister.java, a nie słoika lub czegoś innego. Czy ktoś mógłby mi pomóc dowiedzieć się, co jest nie tak?
skrypt 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>
zmiennej środowiskowej
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...
}
wyjście 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.
przepraszam za opóźnienie w odpowiedzi, dziękuję rozwiązanie rozwiązało problem. –
literówka: '..target =" 1.5 źródło = "1.5 ...'? – Tshepang