ANT - no eclipse roda ok no prompt da erro

3 respostas
N

Olá pessoal
Estou com esse ant funcionando corretamente no eclipse, porem quando eu executo via prompt ele apresenta esse erro:

parece que o erro é nessa linha:

pois é unico lugar onde informo o nome do projeto.

D:\java_Universia_Brasil\workspace2\testa\WebContent\WEB-INF>ant build.xml
Buildfile: build.xml

BUILD FAILED
Target "build.xml" does not exist in the project "testa".

Total time: 0 seconds

segue meu build.xml

<?xml version="1.0" encoding="iso-8859-1"?>  
 <!--  
 Configuramos como default o nosso target "all", nele temos um atributo chamado depends, que indica uma dependência em relação a outro alvo. Cada alvo será executado na ordem em que for chamado respeitando a ordem de suas dependências.  
 -->  
 <project name="testa" default="all" basedir=".">  
   
 <!-- propriedades do projeto com os nomes dos diretórios -->  
   
     <property name="src" value="\${basedir}/src" />  
     <property name="build" value="classes" />  
     <property name="dist" value="dist" />  
     <property name="package" value="src.*" />  
   
   
 <!--  
 target init -  target responsável por criar os diretórios classes, doc e dist.  
 -->  
   
     <target name="init">  
     <echo> Criando os diretório classes, doc e dist.</echo>  
     <mkdir dir="WEB-INF" />  
     </target>  
   
 <!--  
 target compile - target responsável por compilar o projeto separando os arquivos .class no diretório classes.  
 -->  
   
     <target name="compile" depends="init">  
     <echo> Compilando o projeto.</echo>  
     <javac srcdir="classes" destdir="classes"/>  
     </target>  
   
 <!--  
 target dist - target responsável por gerar o .jar executável do projéto no diretório dist.  
 -->  
   
     <target name="dist" depends="compile">  
     <echo> Gerando o .jar do projeto.</echo>      
     <jar jarfile="TestAnt.jar" basedir="classes">  
         <!-- Tornando o jar executável-->  
         <manifest>  
             <attribute name="Main-Class" value="classes"/>             
         </manifest>  
     </jar>  
     </target>  
   
 <!--  
 target all - target responsável por iniciar o processo default e executar a aplicação.  
 -->  
     <target name="all" depends="dist">  
     <echo> Executa o projeto.</echo>  
     <java jar="distjoseJAR/HelloAnt.jar" fork="true"/>  
     </target>  
   
     <target name="clear">  
         <delete dir="\${build}" />  
         <delete dir="\${dist}" />      
     </target>  
 </project>

alguem saberia me dizer porque acontece o erro?

Grato

3 Respostas

B

Quando vc roda o ant pelo prompt ele já sabe o nome do arquivo… rode só “ant” e pronto… se vc colcoar algo depois disto é para rodar uma tag espcifica… no caso teu ele entende que vc quer rodar a tag “build.xml”… que não existe… saca?

N

sim, agora ele rodou, porem nao compilou os .java eu alterei um java e mesmo assim ele nao compilou, saberia me dizer porque?

pois no eclipse ele compila.

talvez esteja aqui o erro:

<target name="compile" depends="init">  
     <echo> Compilando o projeto.</echo>  
     <javac srcdir="classes" destdir="classes"/>  
     </target>

Grato

B

Bom, o pq ele não compilou não sei te dizer não, mas o esquema de compilação do ant usa o timestamp do .class e do .java, tipo, se o timestamp da ultima modificação do .class está mais atual do que o do .jaa ele não compila, para isto eu quando faço meus build files sigo algumas regraa, tipo:
1->Tenha um diretorio para os .java… que geralmente é “src” como base
2->Tenha um doreotrio diferente para os .class, que geralmente é o “bin” asim facilita na horade gerar um jar, por exemplo, pois dai só vai os .class, enão os .java… e sem precisar incluir uma regra de exclude…
3-> Toda vez que eu vou compilar, eu primeiro apago o diretorio “bin”, e o recrio, desta forma eu garanto que todas as classes serão compiladas, não geranto este “erro” que aconteceu agora com vc.

Espero ter ajudado.

Criado 27 de março de 2009
Ultima resposta 27 de mar. de 2009
Respostas 3
Participantes 2