Ol� Rafael,

Como o arquivo JPX � um XML, pode-se usar uma folha de estilos XSLT para
transformar qualquer JPX em build.xml. Para isto, seria preciso entender a estrutura do arquivo (ter um DTD ou XSchema ajudaria). De qualquer forma, o JPX � muito simples. Ele apenas guarda as informa��es que o JBuilder precisa para gerenciar o projeto. Quem decide o que fazer com as propriedades guardadas � o JBuilder. J� no build.xml do Ant voc� define os alvos e tarefas que o Ant ir� executar.
 
Eu fiz uma folha XSLT simples que l� algumas propriedades do JPX e as copia para um build.xml do Ant bem simples. Ele n�o aproveita todas as propriedades do JPX. Algumas s�o in�teis para o Ant. Mas, apesar de simples, ele pode compilar, criar um JAR execut�vel, rodar o JAR e gerar javadoc. Voc� deve poder usar essa folha em qualquer projeto simples de aplica��o console Java. Para aplica��es Web e EJB talvez d� para compilar, mas ser� necess�rio criar targets adicionais para gerar os JARs, fazer os deploy, etc.
 
Suponha o seguinte JPX:

<project>
  <property category="runtime.0" name="RunnableType"  
     value
="com.borland.jbuilder.runtime.ApplicationRunner"/>
  <property category="runtime.0" name="application.class" 
     value
="com.macaiba.xpathed.gui.Main"/>
  <property category="sys" name="BackupPath" value="bak"/>
  <property category="sys" name="DocPath" value="doc"/>
  <property category="sys" name="OutPath" value="classes"/>
  <property category="sys" name="SourcePath" value="src"/>
  <property category="sys" name="Version" value="1.0"/>
  <property category="sys" name="WorkingDirectory" value="."/>
  <!-- ... -->
  <file path="src/com/macaiba/xpathed/gui/Main.java"/>
  <!-- ... -->
  <file path="xpathed.html"/>
</
project>

Eu vou aproveitar apenas as vari�veis que localizam os diret�rios, a vers�o e o nome da classe execut�vel (tudo o que est� em destaque - para quem consegue ver e-mail HTML).
 
A folha de estilos abaixo (parcial - a folha completa est� anexa) l� as propriedades do JPX e as coloca em elementos <property> do Ant. O respo do arquivo usa as propriedades para preencher os targets e tarefas.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output encoding="iso-8859-1" indent="yes"
/>
  <xsl:param name="appName">MeuPrograma</xsl:param
>
  <xsl:template match="project
">
  <project name="JBuilder Project"
        
basedir="{property[@name='WorkingDirectory']/@value}"
         default
="compile
">
  <property name="build.dir"
          value
="{property[@name='OutPath']/@value}"
/>
  <property name="src.dir"
         
value="{property[@name='SourcePath']/@value}" />
  <property name="docs.dir"
          value
="{property[@name='DocPath']/@value}"
/>
  <property name="version"
          value
="{property[@name='Version']/@value}"
/>
  <property name="app.name" 
          value
="{$appName}"
/>
  <property name="jar.file"
          value
="${{app.name}}-${{version}}.jar"
/>
  <property name="main.class"
          value
="{property[@name='application.class']/@value}"
/>

<target name="compile" description="Compila o codigo-fonte
">
  <javac srcdir="${{src.dir}}" destdir="${{build.dir}}
">
    <classpath path="${{build.dir}}"
/>
  </javac
>
</target
>

<target name="build" description="Cria um JAR executavel
">
 
<jar destfile="${{jar.file}}
">
   
<manifest
>
     
<attribute name="Main-class" value="${{main.class}}
"/>
   
</manifest
>
   
<fileset dir="${{build.dir}}"
/>
  
</jar
>
</target>

<!-- Continua ..... -->

Observe que tive que usar {{ nas propriedades do Ant para produzir {. Isto � porque o { � usado pelo processador XSLT para identificar express�es XPath a serem processadas dentro de atributos do arquivo-resultado. Em {$appName}, por exemplo, eu estou lendo um par�metro que cont�m o nome da aplica��o (pode ser passado externamente para o processador XSLT).
 
Para transformar, use qualquer transformador XSLT (o Xalan, por exemplo). Voc� pode usar o Xalan em linha de comando ou us�-lo atrav�s do JAXP. O resultado da transforma��o �:

<?xml version="1.0" encoding="iso-8859-1"?>
<project default="compile" basedir="." name="JBuilder Project">
 <property value="classes" name="build.dir
"/>
 <property value="src" name="src.dir
"/>
 <property value="doc" name="docs.dir
"/>
 <property value="1.0" name="version
"/>
 <property value="MeuPrograma" name="app.name
"/>
 <property value="${app.name}-${version}.jar" name="jar.file
"/>
 <property value="com.macaiba.xpathed.gui.Main" name="main.class
"/>
 <target description="Compila o codigo-fonte" name="compile
">
  <javac destdir="${build.dir}" srcdir="${src.dir}
">
   <classpath path="${build.dir}
"/>
  </javac
>
 </target
>
 <target description="Cria um JAR executavel" name="build
">
  <jar destfile="${jar.file}
">
   <manifest
>
    <attribute value="${main.class}" name="Main-class
"/>
   </manifest
>
   <fileset dir="${build.dir}
"/>
  </jar
>
 </target>

<!-- Continua -->

 
A �nica desvantagem � que o c�digo n�o aparece endentado (a n�o ser que voc� o carregue em um editor que faz a endenta��o como o XML Spy). Se voc� fizer a transforma��o com o Xalan, poder� usar extens�es para endentar o texto ou se fizer usando o JAXP pode fazer isto no serializer.
 
Para gerar buildfiles, d� uma olhada no projeto Antidote. O JEdit 4.1 possui novos plug-ins (AntViz) que permitem representar buildfiles graficamente (mostrando as depend�ncias).
 
[]s
Helder.

--
Helder da Rocha (
[EMAIL PROTECTED])
Web Consultant
www.argonavis.com.br
S�o Paulo, Brazil
+55 (11) 9291 0567

----- Original Message -----
From: "Rafael U. C. Afonso" <
[EMAIL PROTECTED]>
To: "Lista SouJava" <
[EMAIL PROTECTED]>
Sent: Monday, August 26, 2002 11:49 AM
Subject: [java-list] D�vidas Sobre o ANT


>      Ol�:
>
>      Tenho duas d�vidas sobre o Ant:
>      1) Algu�m sabe como gerar um arquivo buildfile do Ant (build.xml) a
> partir de uma arquivo de Projeto do JBuilder (*.jpx)?
>      2) Algu�m conhece uma ferramenta GUI para a gera��o de Buildfiles?
>
>      Grato,
>
>  ===================================
>    Rafael Ubiratam Clemente Afonso
>    Java 2 Certified Programmer
>    E-mail:
[EMAIL PROTECTED]
> ===================================
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
>
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> d�vidas mais comuns:
http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> historico: http://www.mail-archive.com/java-list%40soujava.org.br
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>

Responder a