Vou dormir feliz!

Só para compartilhar, existe a possibilidade de chamar diretamente o
mxmlc.exe via ant, passando os argumentos como parâmetro para a chamada.

Fica meio feio a organização do target, mas esta foi a melhor forma e mais
performática que achei e, para a falta de documentação em relação ao
ANTFLEX, fica mais fácil de você aplicar os parâmetros normais de
compilação<http://www.docsultant.com/site2/articles/flex_cmd.html#mxmlc_3_syntax>
.

Ahh, a memória que antes chegava a 1Gb, agora não passa de 100 e o tempo que
antes era de 6 minutos, agora é de 1 minuto. :)

Para os interessados, segue trecho em anexo.

P.S.1: Para quem quer ainda mais desempenho, existe como você executar em
paralelo várias compilações, para se aprofundar, busquem algo como
"<parallel threadcount="4">" no Google.
P.S.2: Ajustem o trecho para as suas necessidades, este trecho é o básico.

Abraços.

    <target name="build-module" description="Compilação de módulos passados
como parâmetros">
        <exec executable="${mxmlc}">
            <arg line="-benchmark=true" />
            <arg line="-keep-generated-actionscript=false" />
            <arg line="-debug=false" />
            <arg line="-context-root=meucontexto" />
            <arg line="-output=${modulo}.swf" />
            <arg line="-incremental=true" />
            <arg line="-services=services-config.xml" />
            <arg line="-load-externs=xmlGerado.xml" />
            <arg line="-load-config=flex-config.xml" />
            <arg line="-compiler.source-path=src" />
            <arg
line="-compiler.external-library-path=${FLEX_HOME}/frameworks/libs/player/9/"
/>
            <arg line="-compiler.library-path+=${FLEX_HOME}/frameworks/libs"
/>
            <arg line="" />
            <arg line="-- ${src.modulos.dir}/${modulo}.as" />
        </exec>
    </target>




--
Atenciosamente, Pergentino Araújo.
Arquiteto Java/Flex
Doutorando Engenharia Elétrica UnB
Currículo Lattes: http://lattes.cnpq.br/3092110184317060


2010/9/1 Pergentino Araújo <[email protected]>

> Pessoal,
>
> estou em busca da solução perfeita para compilação "em massa" de módulos,
> onde no momento possuo mais de 30 e isto tem gerado dois grandes problemas:
> 1. Tempo de compilação
> 2. Memória utilizada
>
> Para solucionar a 1a situação, faço uso do parâmetro incremental, setando-o
> como true, porém o 2o problema está me tirando a paciência.
>
> A forma mais válida que achei até hoje é criar uma target que recebe como
> parâmetro o nome do módulo e, desta forma, posso criar uma target que faz
> antcall's, semelhante a apresentada abaixo:
>
> <target name="build-modules">
>         <antcall target="build-module">
>             <param name="modulo" value="CadastroAtividade"/>
>         </antcall>
> ...
> ...
> </target>
>
> Percebi que, quando passo pra compilação do 11º módulo, o tempo de
> compilação aumente e, consequentemente a sua memória. Neste momento, a
> memória está passando de 1GB e isto não cheira bem.
>
> Para entender como funciona de fato "por baixo dos panos", adicionei o
> parâmetro "-debug" na execução do ant e percebi que toda vez que eu chamo
> uma antcall, ele não reutiliza o que já foi carregado para a memória,
> adicionando tudo de novo. Seria basicamente chamar outra vez o ant que sai
> engordando a memória.
>
> Será que existe alguma solução ou terei de apelar pra, toda vez, sair
> comentando o build.xml, retirando os "antcalls" ?
>
> --
> Atenciosamente, Pergentino Araújo.
>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a