rogeriopaguilar:
tem uma task do ant que se chama ant, que é justamente pra isso, chamar outros builds de dentro de um build... procura no manual na lista de tags que você encontra ela lá
Olá amigo rogeriopaguilar
Utilizei a Task como você tinha me dito e até consegui fazer rodar os arquivos Ant de teste.
Mas na hora que é para fazer rodar no projeto original está dando o seguinte erro que vou mostrar nas telas abaixo:
Aqui o código do meu Ant para chamar os outros Ants
<?xml version="1.0"?>
<project basedir=".">
<ant antfile="/home/java05/workspace2/ePublicProtocolo/build.xml" />
</project>
/>
Ele até consegue encontrar o projeto Protocolo
mas dá o seguinte erro abaixo:
Buildfile: /home/java05/workspace2/Z-AntsTiago/bin/teste_Ant/ant/build.xml
export-project-artifacts:
[delete] Deleting directory /home/java05/workspace2/Z-AntsTiago/bin/teste_Ant/ant/dist
[mkdir] Created dir: /home/java05/workspace2/Z-AntsTiago/bin/teste_Ant/ant/dist
BUILD FAILED
/home/java05/workspace2/Z-AntsTiago/bin/teste_Ant/ant/build.xml:11: The following error occurred while executing this line:
/home/java05/workspace2/ePublicProtocolo/build.xml:18: The following error occurred while executing this line:
/home/java05/workspace2/ePublicProtocolo/build.xml:90: Manifest file: /home/java05/workspace2/Z-AntsTiago/bin/teste_Ant/ePublicProtocoloBeans/bin/META-INF/MANIFEST.MF does not exist.
Total time: 122 milliseconds
Ou seja, ele fala que não existe o arquivo ou caminho
/home/java05/workspace2/ePublicProtocolo/build.xml:90: Manifest file: /home/java05/workspace2/Z-AntsTiago/bin/teste_Ant/ePublicProtocoloBeans/bin/META-INF/MANIFEST.MF does not exist.
e esse erro ocorre na seguinte linha do Ant do Projeto Protocolo
<jar destfile="${dist.dir}/@{lib-project-name}.jar" compress="true" manifest="../@{lib-project-name}/bin/META-INF/MANIFEST.MF">
Essa linha está dentro de uma macrodef conforme abaixo:
<!-- = = = = = = = = = = = = = = = = =
macrodef: export-lib-artifact
= = = = = = = = = = = = = = = = = -->
<macrodef name="export-lib-artifact">
<attribute name="lib-project-name" />
<sequential>
<jar destfile="${dist.dir}/@{lib-project-name}.jar" compress="true" manifest="../@{lib-project-name}/bin/META-INF/MANIFEST.MF">
<fileset dir="../@{lib-project-name}/bin">
<include name="**/*.*" />
</fileset>
</jar>
</sequential>
</macrodef>
Me parece que na hora que está chegando o diretório ou algo assim nesse tal macrodef, ele está passando algo errado
como podemos ver no erro que fala que o MANIFEST.MF não existe.
Estou colocando o arquivo completo do Ant do Protocolo para ver se ajuda.
Detalhes
1: Já testei tentando usar a task Target mas o erro é o mesmo
2: Já chamei algumas targets separadas e até deu certo mas quando chega nesse tal macrodef dá erro sempre.
3: Eu até consigo usar essa task para chamar outos Ants sem problemas mas quando chega a hora desse tal Macrodef rodar
aí sempre dá erro.
Código completo do Protocolo:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project>
<project name="ePublicProtocolo" default="deploy-glassfish">
<property file="../build.properties" />
<property name="glassfish.server.deploy.path" value="/opt/javatools/glassfish3/glassfish/domains/domain1/autodeploy/" />
<property name="project.basename" value="ePublicProtocolo" />
<property name="dist.dir" location="./dist" />
<!-- =================================
target: export-project-artifacts
================================= -->
<target name="export-project-artifacts">
<delete dir="${dist.dir}" file="**/*.*" />
<mkdir dir="${dist.dir}" />
<export-lib-artifact lib-project-name="${project.basename}Beans" />
<export-ejb-artifact ejb-project-name="${project.basename}Business" />
<export-ejb-artifact ejb-project-name="${project.basename}Facade" />
<export-ejb-artifact ejb-project-name="${project.basename}DAO" />
<export-project-web web-project-name="${project.basename}Web" web-xml-file="../${project.basename}Web/WebContent/WEB-INF/web.xml" />
<export-project-ear ear-project-name="${project.basename}" />
<delete>
<fileset dir="${dist.dir}">
<include name="${project.basename}Web.war" />
<include name="${project.basename}DAO.jar" />
<include name="${project.basename}Facade.jar" />
<include name="${project.basename}Business.jar" />
<include name="${project.basename}Beans.jar" />
</fileset>
</delete>
</target>
<!-- =================================
target: deploy-glassfish
================================= -->
<target name="deploy-glassfish" depends="export-project-artifacts">
<copy todir="${glassfish.server.deploy.path}">
<fileset dir="${dist.dir}">
<include name="${project.basename}.ear" />
</fileset>
</copy>
</target>
<!-- =================================
target: export-project-artifacts-production
================================= -->
<target name="export-project-artifacts-production">
<delete dir="${dist.dir}" file="**/*.*" />
<mkdir dir="${dist.dir}" />
<export-lib-artifact lib-project-name="${project.basename}Beans" />
<export-ejb-artifact ejb-project-name="${project.basename}Facade" />
<export-ejb-artifact ejb-project-name="${project.basename}Business" />
<export-ejb-artifact ejb-project-name="${project.basename}DAO" />
<copy todir="${dist.dir}">
<fileset dir="../${project.basename}Web/WebContent/WEB-INF">
<include name="web.xml" />
</fileset>
</copy>
<replace casesensitive="true" file="${dist.dir}/web.xml" token="Development" value="Production" />
<export-project-web web-project-name="${project.basename}Web" web-xml-file="${dist.dir}/web.xml" />
<delete file="${dist.dir}/web.xml" />
<export-project-ear ear-project-name="${project.basename}" />
<delete>
<fileset dir="${dist.dir}">
<include name="${project.basename}Web.war" />
<include name="${project.basename}DAO.jar" />
<include name="${project.basename}Facade.jar" />
<include name="${project.basename}Business.jar" />
<include name="${project.basename}Beans.jar" />
</fileset>
</delete>
</target>
<!-- = = = = = = = = = = = = = = = = =
macrodef: export-lib-artifact
= = = = = = = = = = = = = = = = = -->
<macrodef name="export-lib-artifact">
<attribute name="lib-project-name" />
<sequential>
<jar destfile="${dist.dir}/@{lib-project-name}.jar" compress="true" manifest="../@{lib-project-name}/bin/META-INF/MANIFEST.MF">
<fileset dir="../@{lib-project-name}/bin">
<include name="**/*.*" />
</fileset>
</jar>
</sequential>
</macrodef>
<!-- = = = = = = = = = = = = = = = = =
macrodef: export-ejb-artifact
= = = = = = = = = = = = = = = = = -->
<macrodef name="export-ejb-artifact">
<attribute name="ejb-project-name" />
<sequential>
<jar destfile="${dist.dir}/@{ejb-project-name}.jar" compress="true" manifest="../@{ejb-project-name}/build/classes/META-INF/MANIFEST.MF">
<fileset dir="../@{ejb-project-name}/build/classes">
<exclude name="**/*Test.class" />
<exclude name="META-INF/*.*" />
</fileset>
<fileset dir="../@{ejb-project-name}/ejbModule">
<include name="META-INF/*.*"/>
</fileset>
</jar>
</sequential>
</macrodef>
<!-- = = = = = = = = = = = = = = = = =
macrodef: export-project-web
= = = = = = = = = = = = = = = = = -->
<macrodef name="export-project-web">
<attribute name="web-project-name" />
<attribute name="web-xml-file" />
<sequential>
<ant antfile="../ePublicFacesCommon/build.xml" inheritall="false" />
<war compress="true" destfile="${dist.dir}/@{web-project-name}.war" manifest="../@{web-project-name}/WebContent/META-INF/MANIFEST.MF" webxml="@{web-xml-file}">
<fileset dir="../@{web-project-name}/WebContent">
<exclude name="META-INF/*" />
<exclude name="WEB-INF/web.xml" />
<exclude name="WEB-INF/*.jsfdia" />
<exclude name="reports/*.jrxml" />
</fileset>
<classes dir="../@{web-project-name}/build/classes" />
<lib dir="../ePublicFacesCommon/dist" />
</war>
</sequential>
</macrodef>
<!-- = = = = = = = = = = = = = = = = =
macrodef: export-project-ear
= = = = = = = = = = = = = = = = = -->
<macrodef name="export-project-ear">
<attribute name="ear-project-name" />
<sequential>
<zip destfile="${dist.dir}/@{ear-project-name}.ear" compress="true">
<zipfileset file="../@{ear-project-name}/EarContent/META-INF/application.xml" prefix="META-INF" />
<zipfileset file="../@{ear-project-name}/EarContent/META-INF/MANIFEST.MF" prefix="META-INF" />
<zipfileset dir="${dist.dir}">
<include name="@{ear-project-name}DAO.jar" />
<include name="@{ear-project-name}Business.jar" />
<include name="@{ear-project-name}Facade.jar" />
<include name="@{ear-project-name}Web.war" />
</zipfileset>
<zipfileset file="${dist.dir}/@{ear-project-name}Beans.jar" prefix="lib" />
</zip>
</sequential>
</macrodef>
</project>
Por favor quem peço ajuda pois essa é uma tarefa que estou tentando criar para onde eu trabalho.
Desde já agradeço pela atenção.
Abraços.