Rodar Ant a partir do java

6 respostas
wandermudo
Bom a dia a todos...
            Gostaria de poder rodar o ant (para compilar classes) a partir de uma aplicação java...
            Alguém tem algum exemplo de como poderia fazer isso?

6 Respostas

V

E ae… então… eu entrei no site do ant (http://ant.apache.org), fui em manual, depois cliquei no menu do lado esquerdo “Running ant via java”

http://ant.apache.org/manual/index.html

[]´s

wandermudo

Eu já tinha visto esse manual mas não é bem isso que eu queria …
ou então não entendi como fazer…
O que gostaria era de disparar o buildfile a partir de uma classe em java.

Temos um cvs e gostariamos de subir somente os arquivos *.java e compilar
todas as classes de uma vez (ant) , porém disparar a compilação (buildfile) a partir de um aplicação java…

MarcioF

Os comandos do ant são:

ant procura build.xml no diretório atual e roda alvo default

ant -buildfile outro.xml executa alvo default de arquivo outro.xml

ant compilar roda alvo ‘compilar’ e possíveis dependências em build.xml

e para rodá-los dentro de uma aplicação, em linux (com gerenciador natilus ou kfm) ou windows

if (this.osName.indexOf("Linux") != -1)
        {
                try
                {
                    this.command.append(/*aqui comando ant*/);
                    executor.exec(this.command.toString());
                    break;
                }//fim do try
                catch (IOException e)
                {
                    if (!flag)
                    {
                        flag = true;
                        this.command.setLength(0);
                    }//fim do else
                }//fim do catch
                finally
                {
                    cont++;
                }//fim do finally
        }//fim do if
        else if (this.osName.indexOf("Windows") != -1)
        {
            try
            {
                Process teste = executor.exec(/*comando ant para windows*/);

            }//fim do try
            catch (IOException e)
            {
                System.out.print("ERRO ao tentar abrir o arquivo.");
            }//fim do catch
        }//fim do else if
    }

espero ter ajudado…

qualquer dúvida posta aí…

MarcioF

Esqueci da declaraçao das variáveis

private Runtime executor = null;

    private Properties properties = null;

    private String osName = null;

    private StringBuffer command = null;

this.executor = Runtime.getRuntime();
this.properties = System.getProperties();
this.osName = this.properties.getProperty("os.name");
this.command = new StringBuffer();
wandermudo

Valeu brother!

Luca

Olá

Making use of Ant buildfiles from within your Java code

[]s
Luca

Criado 21 de fevereiro de 2005
Ultima resposta 22 de fev. de 2005
Respostas 6
Participantes 4