Julho 12th 2007 01:39 am

Phing

Entendendo

Em nosso projeto definimos na propriedade default que o target que seria executado por padrão iria ser o "clean".

XML:
  1. ...
  2.     <project name="PhingTest" default="clean" basedir=".">
  3.   ...

Abaixo estão as variáveis que configuramos para nosso projeto, repare que a propriedade project.basedir, não está declarada, pois faz partes das variáveis de ambiente do Phing.

XML:
  1. <property name="src" value="${project.basedir}/src" />
  2.   <property name="build" value="${project.basedir}/build" />
  3.   <property name="dist" value="${project.basedir}/dist" />

Nos quatro targets definidos em nosso projeto, fizemos com que o destino "clean" dependesse da execução do "dist", o "dist" da execução do "build" e o "build" da execução do "preprare", cada um executando suas próprias tarefas. Vamos analisar um por um.

XML:
  1. ...
  2.     <target name="prepare">
  3.       <echo msg="Preparando o build..." />
  4.       <mkdir dir="${build}" />
  5.     </target>
  6.   ...

neste target, executamos duas tarefas, a echo que apenas imprime uma string na saida padrão, a mkdir que cria um diretório no destino indicado pela variável ${build}.

XML:
  1. ...
  2.     <target name="build" depends="prepare">
  3.       <echo>Building...</echo>
  4.       <copy file="${src}/file1.php" tofile="${build}/file1.php"/>
  5.       <copy file="${src}/file2.php" tofile="${build}/file2.php"/>
  6.     </target>
  7.   ...

neste target, executamos outras duas tarefas, a echo novamente, e a copy que copia o arquivo indicado na propriedade file para o destino indicado na propriedade tofile.

XML:
  1. ...
  2.     <target name="dist" depends="build">
  3.       <echo message="Criando arquivo de distribuicao..." />
  4.       <tar destfile="${dist}/projeto.tar.gz" basedir="${build}" />
  5.     </target>
  6.   ...

neste target, executamos outras duas tarefas, a echo novamente, e a tar que gra um arquivo tar.gz com o conteúdo do diretório indicado na propiedade basedir.

XML:
  1. ...
  2.     <target name="clean" depends="dist">
  3.       <echo msg="Limpando..."/>
  4.       <delete dir="${build}" includeemptydirs="true" verbose="true" failonerror="true" />
  5.     </target>
  6.   ...

e finalmente o target clean que nada mais faz, do que imprimir uma string através da tarega echo e deletar o diretório indicado na propriedade dir da tarefa delete.

Fico por aqui, em outra oportunidade estarei abordando questões mais avançadas para utilização do Phing.

Arquivos do artigo para download.

Este arquivo foi inspirado no artigo sobre o Ant publicado por Richardson Oliveira disponível em:

http://www.guj.com.br/java.artigo.30.1.guj

Compartilhe:
  • del.icio.us
  • Google
  • Digg
  • Sphinn
  • Facebook
  • Mixx
  • LinkedIn
  • Live
  • Rec6
  • Technorati
  • TwitThis
1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (1 votos, média: 5 de 5)
Loading ... Loading ...

Páginas: 1 2 3 4

2 Comments »

2 Responses to “Phing”

  1. Hugo on 16 Ago 2007 at 02:19 #

    Qdo digitei o comando C:\php5>phing -v
    surgiu a seguinte mensagem:
    Buildfile: build.xml does not exist!

    Qual seria o problema?

  2. diegotremper on 16 Ago 2007 at 02:41 #

    não há problema algum, isto é prefeiramente normal.

    O que acontece é que ele está tentando encontrar o arquivo build.xml no diretório corrente que você está executando o phing. A opção “-v” exibe a versão que esta sendo executada, desconsidere a mensagem “Buildfile: build.xml does not exist!”.

    Para executar algum arquivo de build basta executar o comando C:\php5\phing (supondo que existe o arquivo build.xml no diretório corrente), caso queira apontar para um arquivo build.xml que não esteja no diretório corrente basta executar

    C:\php5\phing -f C:\caminho\para\o\arquivo\build.xml

    []’s

Trackback URI | Comments RSS

Leave a Reply

« Testando seus códigos com PHPUnit | Crud com Zend Framework 1.0.0 »