Precisa de um freelancer, códigos-fonte e exemplos completos?
Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
 
Arquivo de Códigos - Página Inicial
Códigos-fonte
» Códigos-fonte e exemplos completos
Linguagens
» ActionScript
» Adobe AIR
» Adobe Flex
» AJAX
» C
» C#
» C++
» CSS
» Delphi
» DHTML - Dynamic HTML
» HTML/XHTML
» Java
» JavaFX
» JavaScript
» Java Servlets
» JSP - Java Server Pages
» Perl
» PHP
» PHP-GTK
» Python
» Ruby
» Tcl/Tk
» VB.NET
Bancos de Dados
» IBM DB2
» MySQL
Frameworks
» CodeIgniter
» jQuery
» JSF - Java Server Faces
» Qt
» Ruby On Rails
» Struts
» Struts 2
» wxWidgets
» Zend Framework
Container/Servidor
» Apache Tomcat
» Apache Web Server
Ferramentas
» Apache Ant
» iTextSharp (iText#)
Referências
» CSS1 e CSS2
» JavaScript
Serviços On-Line
» Qual é meu IP?
» Tabela Cores HTML I
» Tabela Cores HTML II
» Lista de Mime Types
» Códigos Teclas Virtuais
Usuários On-Line
Visitantes: 51
PHP
O que há de novo no PHP 5?
40 dicas e truques sobre como trabalhar com datas e horas em PHP
60 dicas e truques sobre como trabalhar com strings e caracteres em PHP
PHP e a Orientação a Objetos - POO (Curso Completo)

DHTML
Curso completo de DHTML para iniciantes

CSS
Como definir uma imagem de fundo fixa na página
Definindo uma imagem de fundo para botões HTML
Você está aqui: Inicio -> Tutoriais -> Apache Ant
Interagindo com o Ant via console durante a execução dos arquivos de build
Até o tópico anterior todos os arquivos de build que escrevemos eram executados pelo Ant de uma só vez, ou seja, não havia a possibilidade de fazer escolhas ou definir valores após o início do processo. Neste tópico veremos como isso é possível.

Uma das aplicações mais interessantes da comunicação com o Ant após o início da execução do arquivo de build é solicitar nomes de diretórios ou arquivos ou ainda solicitar confirmação para uma tarefa a ser executada.



A tarefa input é usada quando queremos pausar a execução do Ant e esperar pelo pressionamento de alguma tecla ou informação do usuário. Veja um exemplo:

<input/>

O simples fato de inserir esta tarefa no fluxo de execução de um determinado alvo fará com que a execução do build seja interrompida e recomece somente quando você pressionar a tecla Enter. É claro que é sempre uma boa idéia informar o usuário sobre este procedimento. Assim, uma abordagem melhor é usar:

<input>Tecle Enter para continuar...</input>

Caso você desejar a confirmação do usuário antes de proceder com a execução do arquivo de build poderá usar o seguinte código (como um exemplo vale mais que 1000 palavras, o build a seguir pede confirmação antes de criar um diretório e copiar um arquivo):

<project name="teste" basedir="." default="alvo">

    <target name="alvo">
        <input
            message="O diretorio paginas sera criado agora. Deseja
            continuar (s/n)?"
            validargs="s,n"
            addproperty="valor" />
        <condition property="sair">
            <equals arg1="n" arg2="${valor}"/>
        </condition>
        <fail if="sair">O processo de build foi cancelado.</fail>

        <mkdir dir="paginas" />
        <copy file="index.jsp" todir="paginas" />
    </target>

</project>


Ao executarmos este build teremos o seguinte resultado:

C:\testes>ant
Buildfile: build.xml

alvo:
    [input] O diretorio paginas sera criado agora. Deseja continuar (s/n)?(s,n)
s
    [mkdir] Created dir: C:\testes\paginas
    [copy] Copying 1 file to C:\testes\paginas

BUILD SUCCESSFUL
Total time: 10 seconds


Veja que aqui a resposta para a pergunta foi "s". Se respondermos "n" teremos outro resultado. Observe:

C:\testes>ant
Buildfile: build.xml

alvo:
    [input] O diretorio paginas sera criado agora. Deseja continuar (s/n)?(s,n)
n

BUILD FAILED
C:\testes\build.xml:11: O processo de build foi cancelado.

Total time: 2 seconds


O primeiro passo para entender este arquivo de build é começar analisando a tarefa input:

<input
    message="O diretorio paginas sera criado agora. Deseja
    continuar (s/n)?"
    validargs="s,n"
    addproperty="valor" />

Veja que aqui temos três atributos. Veja suas definições a seguir:

a) message – É a mensagem a ser exibida para o usuário;
b) validargs – Uma string contendo as palavras (ou letras) válidas como argumento de entrada no console. Observe que validarags é sensitiva à maiúsculas e minúsculas. Em nosso exemplo aceitamos somente "s" e "n". Se quiséssemos aceitar também "S" e "N" bastaria acrescentar estas letras ao valor do atributo.
c) addproperty – Permite criar uma variável global que armazenará o valor informado pelo usuário. Este atributo é muito importante, como veremos mais adiante.

Logo após o elemento input temos uma condição:

<condition property="sair">
    <equals arg1="n" arg2="${valor}"/>
</condition>

Esta condição define uma propriedade (ou seria melhor chamá-la de variável?) global chamada sair. Inicialmente o valor para esta propriedade é false. Dentro do elemento condition temos um elemento equals que compara o valor informado pelo usuário (presente em arg2) com um dos valores válidos como entrada. No nosso exemplo, a propriedade sair terá o valor true se o valor informado pelo usuário for igual a "n".

E agora o trecho mais importante: um elemento fail:

<fail if="sair">O processo de build foi cancelado.</fail>

Este elemento possui apenas um atributo (a mensagem a ser exibida) e é usado para testarmos valores de propriedades para decidir se a execução do build deverá prosseguir ou ser interrompida. Veja como testamos o valor da propriedade sair definida anteriormente no elemento condition. É importante observar que, se o teste efetuado no elemento fail resultar verdadeiro, a execução do arquivo é interrompida, ou seja, nenhuma linha de código após este elemento será executada.
Este tutorial contém as seguintes seções:
  1. Apresentação
  2. O que é o Apache Ant?
  3. Baixando e Instalando o Apache Ant
  4. Entendendo alvos, tarefas e o arquivo build.xml
  5. Criando diretórios e copiando arquivos usando Ant
  6. Usando variáveis durante o processo de automação de tarefas
  7. Como compilar arquivos Java usando Ant
  8. Uso do Ant na execução de aplicativos Java
  9. Exibindo mensagens durante o processo de automação das tarefas
  10. Empacotando aplicações web com o uso da tarefa War
  11. Usando a tarefa Unwar para extrair o conteúdo de um arquivo War
  12. Como gerar arquivos JAR usando Ant
  13. Interagindo com o Ant via console durante a execução dos arquivos de build
  14. Como obter valores via console durante a execução de um build Ant
  15. Como validar a entrada do usuário em um arquivo de build (como estender a classe Task do Ant)
 
 
Arquivo de Códigos - Página Inicial
Veja dicas, truques e anotações de JavaScript
Como obter o logaritmo natural de 2
Como adicionar um método ao objeto Number que indicará se um número é par ou impar
Como elevar um número a uma determinada potência
Como concatenar um array e um objeto
Ordenando valores númericos com o auxílio de uma função
Como obter uma referência à função que invocou a função atual
Como testar se uma string é um valor númerico válido
Como obter o arco tangente de um número
Quantidade de vezes que o internauta visitou a página
Como usar o método escape para codificar uma frase
Veja dicas, truques e anotações de outras linguagens
PHP - Gerando um número randômico usando a função mt_rand()
ActionScript - Gerando um número aleatório (randômico) entre 0 e 10 (incluindo)
C++ - Como obter o índice do item selecionado em uma Listbox de seleção única
Java - Como calcular o MDC (Máximo Divisor Comum) em Java
Python - Como criar e usar um objeto window top-level (janelas top-level)
Java - Aplicar uma borda colorida a uma célula ao passar o mouse
Java - A instrução switch do Java
Java - Como converter um objeto Date em um objeto Calendar
C++ - Saiba mais sobre true e false em C e C++
C++ - Como obter o diretório atual usando GetCurrentDirectory

       

http://www.arquivodecodigos.net
:: Arquivo de Códigos - Softwares e Consultoria em Programação ::
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.
Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do
conteúdo disponibilizado nestas páginas.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734

Desenvolvedor Responsável: Osmar J. Silva

Página Inicial Contatos Pesquisar Mapa do Site