2011-06-13 26 views
14

¿Cómo convertir script ant en script gradle? Hola, ¿Podrían ayudarme a convertir el script ant en el script gradle. Soy nuevo usuario de gradle.convertir script ant en script gradle

<property name="pm-dir"    value="${PM-DIR}/${BUILD_NUM}" /> 
<property name="leis-dir"    value="${LEIS_DIR}/${BUILD_NUM}" /> 

<property name="proxy-name"    value="${PROXY_JAR_NAME}"/> 
<property name="proxy-client-name"  value="${PROXY_CLIENT_JAR_NAME}"/> 

<property environment="env"/> 
<property name="java-home"    value="${env.JAVA_HOME}"/> 

    <condition property="build-pm"> 
    <equals arg1="True" arg2="${BUILD_PM}" /> 
</condition> 

<condition property="build-LEIS"> 
    <equals arg1="True" arg2="${BUILD_LEIS}" /> 
</condition> 


<target name="build-LEIS-components" if="build-LEIS"> 

    <ant antfile="build.xml" 
     target="clean" 
     dir="${leis-dir}/LEIS" 
     inheritAll="false"/> 
    <ant antfile="build.xml" 
     target="ejbdoclet" 
     dir="${leis-dir}/LEIS/BusinessServices" 
     inheritAll="false"/> 
    <ant antfile="build.xml" 
     target="jar" 
     dir="${leis-dir}/LEIS" 
     inheritAll="false"/> 

    <ant antfile="build.xml" 
     target="clean" 
     dir="${leis-dir}/ETS/trunk/Entitlements" 
     inheritAll="false"/> 
    <ant antfile="build.xml" 
     target="build" 
     dir="${leis-dir}/ETS/trunk/Entitlements" 
     inheritAll="false"/> 

    <mkdir dir="${leis-dir}/JARS/APP-INF/lib/"/> 

    <jar jarfile="${leis-dir}/JARS/APP-INF/lib/LEISConfig.jar"> 
     <fileset dir="LEIS/" includes="datetime.properties"/> 
     <fileset dir="LEIS/" includes="log4j.properties"/> 
     <manifest> 
      <attribute name="Built-By" value="${user.name}"/> 
     </manifest> 
    </jar> 
</target> 


<!--======================================================================== 
Builds pm using the supplied RE build files, modified by us. 
========================================================================--> 
<target name="build-pm" if="build-pm"> 




    <!-- SPPResourceBundle Overrides --> 
    <mkdir dir="${pm-dir}/pm2/deploy/propertyoverrides"/> 
    <copy todir="${pm-dir}/pm2/deploy/propertyoverrides" overwrite="true"> 
     <fileset dir="olwpmconfig/propertyoverrides"/> 
    </copy> 

    <!-- copy build.properties into pm dir, complete with kodo key --> 
    <copy file="olwpmconfig/build.properties"  todir="${pm-dir}/pm2/"   overwrite="true"> 
     <filterchain>   
       <replacetokens> 
        <token key="LOGGINGFLOOR" value="${PERFORMANCE_LOGGING_FLOOR}"/> 
        <token key="BEADIR" value="${BEA_HOME}"/> 
       </replacetokens> 
     </filterchain> 
    </copy> 

    <!--the actual Retail Express build scripts to create the pm-main.ear--> 
    <echo message="Calling pm Build Script"/> 
    <ant antfile='${pm-dir}/pm2/build/build.xml'   target='clean-build' inheritAll="false"/> 

    <!--delete the extra copy of jdo.dtd--> 
    <delete file="jdo.dtd" /> 

    <fileset id="required-pm-client-libs" dir="${pm-dir}/pm2/deploy/lib"> 
     <include name="*.jar"/> 
     <include name="client/*.jar"/> 
     <exclude name="*tests.jar"/> 
    </fileset> 

    <!-- Used to populate value of MANIFEST.MF Class-path attribute. Turns our set of "required" libs 
    into a nice space separated string to place in the MANIFEST.MF. Property is used in the "dist" 
    task's jar command. --> 
    <pathconvert property="client-classpath" 
       refid="required-pm-client-libs" 
       pathsep=" " 
       dirsep="/"> 
     <map from="${pm-dir}/pm2/deploy/lib/" to=""/> 
    </pathconvert> 

    <jar update="true" jarfile="${pm-dir}/pm2/deploy/lib/pm-core.jar"> 
     <manifest> 
      <attribute name="Class-Path" value="${client-classpath}"/> 
      <attribute name="Main-Class" value="com.retailexp.pm.ui.util.SPPClientStartUp"/> 
     </manifest> 
    </jar> 

    <!-- Creates a file Marimba/BigFix/WhatEver can use to track the version of pm installed on a machine --> 
    <echo message="${pm_MAJOR_VERSION}.${BUILD_NUM}" file="${pm-dir}/pm2/deploy/lib/version.txt" append="false"/> 

    <!-- Remove files we place on classpath from ears, Mantis 10624 --> 
    <!-- pm --> 
    <move file="${pm-dir}/pm2/deploy/dist/pm-main.ear" tofile="${pm-dir}/pm2/deploy/dist/old-pm-main.ear"/> 
    <unzip src="${pm-dir}/pm2/deploy/dist/old-pm-main.ear" dest="${pm-dir}/pm2/deploy/dist/"> 
     <patternset> 
      <include name="lib/pm-server-conf.jar"/> 
     </patternset> 
    </unzip> 
    <move file="${pm-dir}/pm2/deploy/dist/lib/pm-server-conf.jar" tofile="${pm-dir}/pm2/deploy/dist/lib/old-pm-server-conf.jar"/> 
    <zip file="${pm-dir}/pm2/deploy/dist/lib/pm-server-conf.jar"> 
     <zipfileset src="${pm-dir}/pm2/deploy/dist/lib/old-pm-server-conf.jar"> 
      <exclude name="log4j.properties"/> 
      <exclude name="ehcache-transactional.xml"/> 
     </zipfileset> 
    </zip> 
    <zip file="${pm-dir}/pm2/deploy/dist/pm-main.ear"> 
     <zipfileset src="${pm-dir}/pm2/deploy/dist/old-pm-main.ear"> 
      <exclude name="lib/pm-server-conf.jar"/> 
     </zipfileset> 
     <zipfileset dir="${pm-dir}/pm2/deploy/dist/lib/" includes="pm-server-conf.jar" fullpath="lib/pm-server-conf.jar"/> 
    </zip> 
    <!-- EDM --> 
    <move file="${pm-dir}/pm2/deploy/dist/pm-edm.ear" tofile="${pm-dir}/pm2/deploy/dist/old-pm-edm.ear"/> 
    <unzip src="${pm-dir}/pm2/deploy/dist/old-pm-edm.ear" dest="${pm-dir}/pm2/deploy/dist/"> 
     <patternset> 
      <include name="lib/pm-server-conf.jar"/> 
     </patternset> 
    </unzip> 
    <move file="${pm-dir}/pm2/deploy/dist/lib/pm-server-conf.jar" tofile="${pm-dir}/pm2/deploy/dist/lib/old-pm-server-conf.jar"/> 
    <zip file="${pm-dir}/pm2/deploy/dist/lib/pm-server-conf.jar"> 
     <zipfileset src="${pm-dir}/pm2/deploy/dist/lib/old-pm-server-conf.jar"> 
      <exclude name="log4j.properties"/> 
     </zipfileset> 
    </zip> 
    <zip file="${pm-dir}/pm2/deploy/dist/pm-edm.ear"> 
     <zipfileset src="${pm-dir}/pm2/deploy/dist/old-pm-edm.ear"> 
      <exclude name="lib/pm-server-conf.jar"/> 
     </zipfileset> 
     <zipfileset dir="${pm-dir}/pm2/deploy/dist/lib/" includes="pm-server-conf.jar" fullpath="lib/pm-server-conf.jar"/> 
    </zip> 
</target> 

<!--======================================================================== 
Builds LEIS 
========================================================================--> 
<target name="build-proxy" if="build-LEIS"> 

    <!--copy deploy.properties with the proper jar names and locations--> 
    <copy file="LEIS/deploy.properties"  todir="${leis-dir}/proxy/config/build/" overwrite="true"> 
     <filterchain> 
       <replacetokens> 
        <token key="pmCORE"   value="${pm_CORE_NAME}"/> 
        <token key="pmTRANSFER"  value="${pm_TRANSFER_NAME}"/> 
        <token key="PROXYJARNAME"  value="${PROXY_JAR_NAME}"/> 
        <token key="PROXYCLIENTJARNAME" value="${PROXY_CLIENT_JAR_NAME}"/> 
        <token key="PROXYLIBSDIR"  value="${leis-dir}/JARS/"/> 
       </replacetokens> 
     </filterchain> 
    </copy> 

    <ant antfile="build.xml" target="clean" dir="${leis-dir}/proxy" inheritAll="false" /> 
    <ant antfile="build.xml" target="prod-dist" dir="${leis-dir}/proxy" inheritAll="false"> 
     <property name="build.name" value="${pm_MAJOR_VERSION}.${BUILD_NUM}"/> 
    </ant> 

    <ear destfile="${ear-name}" appxml="LEIS/application.xml"> 
     <metainf dir="${leis-dir}/LEIS/conf/EAR/META-INF" includes="weblogic-application.xml"/> 
     <fileset dir="${leis-dir}/JARS/"     includes="*.jar"/> 
     <fileset dir="${leis-dir}/JARS/"     includes="APP-INF/**" excludes="APP-INF/lib/wlfullclient.jar"/> 
    </ear> 

    <!-- Place the proxy-client jar in the pm ear--> 
    <zip update="true" destfile="${pm-dir}/pm2/deploy/dist/pm-main.ear"> 
     <zipfileset dir="${leis-dir}/proxy/dist/" includes="${proxy-client-name}" fullpath="APP-INF/lib/${proxy-client-name}"/> 
    </zip> 

</target> 

<target name="build-cpc"> 
    <copy file="${pm-dir}/pm2/deploy/lib/${pm_TRANSFER_NAME}" todir="${leis-dir}/cpc-web-app/webapp/lib/cpc"/> 
    <ant antfile="build.xml" target="build-all-environments" dir="${leis-dir}/cpc-web-app/webapp" inheritAll="false"/> 
</target> 

<target name="build-all"> 
    <antcall target="build-LEIS-components"/> 
    <antcall target="build-pm"/> 
    <antcall target="build-proxy"/> 
    <antcall target="build-cpc"/> 
</target> </condition> 

<condition property="build-LEIS"> 
    <equals arg1="True" arg2="${BUILD_LEIS}" /> 
</condition> 


<target name="build-LEIS-components" if="build-LEIS"> 

    <!--Go through and build the LEIS modules--> 
    <ant antfile="build.xml" 
     target="clean" 
     dir="${leis-dir}/LEIS" 
     inheritAll="false"/> 
    <ant antfile="build.xml" 
     target="ejbdoclet" 
     dir="${leis-dir}/LEIS/BusinessServices" 
     inheritAll="false"/> 
    <ant antfile="build.xml" 
     target="jar" 
     dir="${leis-dir}/LEIS" 
     inheritAll="false"/> 



    <ant antfile="build.xml" 
     target="clean" 
     dir="${leis-dir}/ETS/trunk/Entitlements" 
     inheritAll="false"/> 
    <ant antfile="build.xml" 
     target="build" 
     dir="${leis-dir}/ETS/trunk/Entitlements" 
     inheritAll="false"/> 


    <mkdir dir="${leis-dir}/JARS/APP-INF/lib/"/> 


    <jar jarfile="${leis-dir}/JARS/APP-INF/lib/LEISConfig.jar"> 
     <fileset dir="LEIS/" includes="datetime.properties"/> 
     <fileset dir="LEIS/" includes="log4j.properties"/> 
     <manifest> 
      <attribute name="Built-By" value="${user.name}"/> 
     </manifest> 
    </jar> 
</target> 


<target name="build-pm" if="build-pm"> 



    <mkdir dir="${pm-dir}/amp2/deploy/propertyoverrides"/> 
    <copy todir="${pm-dir}/amp2/deploy/propertyoverrides" overwrite="true"> 
     <fileset dir="olwAMPconfig/propertyoverrides"/> 
    </copy> 

    <ant antfile='${pm-dir}/amp2/build/build.xml'   target='clean-build' inheritAll="false"/> 

    <!--delete the extra copy of jdo.dtd--> 
    <delete file="jdo.dtd" /> 

    <fileset id="required-amp-client-libs" dir="${pm-dir}/amp2/deploy/lib"> 
     <include name="*.jar"/> 
     <include name="client/*.jar"/> 
     <exclude name="*tests.jar"/> 
    </fileset> 

    <!-- Used to populate value of MANIFEST.MF Class-path attribute. Turns our set of "required" libs 
    into a nice space separated string to place in the MANIFEST.MF. Property is used in the "dist" 
    task's jar command. --> 
    <pathconvert property="client-classpath" 
       refid="required-amp-client-libs" 
       pathsep=" " 
       dirsep="/"> 
     <map from="${pm-dir}/amp2/deploy/lib/" to=""/> 
    </pathconvert> 

    <jar update="true" jarfile="${pm-dir}/amp2/deploy/lib/amp-core.jar"> 
     <manifest> 
      <attribute name="Class-Path" value="${client-classpath}"/> 
      <attribute name="Main-Class" value="com.retailexp.amp.ui.util.SPPClientStartUp"/> 
     </manifest> 
    </jar> 

    <!-- Creates a file Marimba/BigFix/WhatEver can use to track the version of AMP installed on a machine --> 
    <echo message="${AMP_MAJOR_VERSION}.${BUILD_NUM}" file="${pm-dir}/amp2/deploy/lib/version.txt" append="false"/> 

    <!-- Remove files we place on classpath from ears, Mantis 10624 --> 
    <!-- AMP --> 
    <move file="${pm-dir}/amp2/deploy/dist/amp-main.ear" tofile="${pm-dir}/amp2/deploy/dist/old-amp-main.ear"/> 
    <unzip src="${pm-dir}/amp2/deploy/dist/old-amp-main.ear" dest="${pm-dir}/amp2/deploy/dist/"> 
     <patternset> 
      <include name="lib/amp-server-conf.jar"/> 
     </patternset> 
    </unzip> 
    <move file="${pm-dir}/amp2/deploy/dist/lib/amp-server-conf.jar" tofile="${pm-dir}/amp2/deploy/dist/lib/old-amp-server-conf.jar"/> 
    <zip file="${pm-dir}/amp2/deploy/dist/lib/amp-server-conf.jar"> 
     <zipfileset src="${pm-dir}/amp2/deploy/dist/lib/old-amp-server-conf.jar"> 
      <exclude name="log4j.properties"/> 
      <exclude name="ehcache-transactional.xml"/> 
     </zipfileset> 
    </zip> 
    <zip file="${pm-dir}/amp2/deploy/dist/amp-main.ear"> 
     <zipfileset src="${pm-dir}/amp2/deploy/dist/old-amp-main.ear"> 
      <exclude name="lib/amp-server-conf.jar"/> 
     </zipfileset> 
     <zipfileset dir="${pm-dir}/amp2/deploy/dist/lib/" includes="amp-server-conf.jar" fullpath="lib/amp-server-conf.jar"/> 
    </zip> 
    <!-- EDM --> 
    <move file="${pm-dir}/amp2/deploy/dist/amp-edm.ear" tofile="${pm-dir}/amp2/deploy/dist/old-amp-edm.ear"/> 
    <unzip src="${pm-dir}/amp2/deploy/dist/old-amp-edm.ear" dest="${pm-dir}/amp2/deploy/dist/"> 
     <patternset> 
      <include name="lib/amp-server-conf.jar"/> 
     </patternset> 
    </unzip> 
    <move file="${pm-dir}/amp2/deploy/dist/lib/amp-server-conf.jar" tofile="${pm-dir}/amp2/deploy/dist/lib/old-amp-server-conf.jar"/> 
    <zip file="${pm-dir}/amp2/deploy/dist/lib/amp-server-conf.jar"> 
     <zipfileset src="${pm-dir}/amp2/deploy/dist/lib/old-amp-server-conf.jar"> 
      <exclude name="log4j.properties"/> 
     </zipfileset> 
    </zip> 
    <zip file="${pm-dir}/amp2/deploy/dist/amp-edm.ear"> 
     <zipfileset src="${pm-dir}/amp2/deploy/dist/old-amp-edm.ear"> 
      <exclude name="lib/amp-server-conf.jar"/> 
     </zipfileset> 
     <zipfileset dir="${pm-dir}/amp2/deploy/dist/lib/" includes="amp-server-conf.jar" fullpath="lib/amp-server-conf.jar"/> 
    </zip> 
</target> 

<!--=============== Builds LEIS ========================================================================--> 
<target name="build-proxy" if="build-LEIS"> 


    <ant antfile="build.xml" target="clean" dir="${leis-dir}/proxy" inheritAll="false" /> 
    <ant antfile="build.xml" target="prod-dist" dir="${leis-dir}/proxy" inheritAll="false"> 
     <property name="build.name" value="${AMP_MAJOR_VERSION}.${BUILD_NUM}"/> 
    </ant> 

    <!--copy the proxy jar to the LEIS jars library--> 
    <copy todir="${leis-dir}/JARS" flatten="true"> 
     <fileset dir="${leis-dir}/proxy/dist/" > 
      <include name="${proxy-name}"/> 
     </fileset> 
    </copy> 

    <!--create a directory to hold the LEIS ear contents--> 
    <property name="ear.dir"   value="${leis-dir}/bin"/> 
    <property name="ear-name"   value="${ear.dir}/LEIS_AMP.ear"/> 
    <mkdir dir="${ear.dir}"/> 

    <!--create the ear from the directories contents--> 
    <ear destfile="${ear-name}" appxml="LEIS/application.xml"> 
     <metainf dir="${leis-dir}/LEIS/conf/EAR/META-INF" includes="weblogic-application.xml"/> 
     <fileset dir="${leis-dir}/JARS/"     includes="*.jar"/> 
     <fileset dir="${leis-dir}/JARS/"     includes="APP-INF/**" excludes="APP-INF/lib/wlfullclient.jar"/> 
    </ear> 

    <!-- Place the proxy-client jar in the amp ear--> 
    <zip update="true" destfile="${pm-dir}/amp2/deploy/dist/amp-main.ear"> 
     <zipfileset dir="${leis-dir}/proxy/dist/" includes="${proxy-client-name}" fullpath="APP-INF/lib/${proxy-client-name}"/> 
    </zip> 

</target> 

<target name="build-cpc"> 
    <copy file="${pm-dir}/amp2/deploy/lib/${AMP_TRANSFER_NAME}" todir="${leis-dir}/cpc-web-app/webapp/lib/cpc"/> 
    <ant antfile="build.xml" target="build-all-environments" dir="${leis-dir}/cpc-web-app/webapp" inheritAll="false"/> 
</target> 

<!--========================================= Build AMP and LEIS --!> 

<target name="build-all"> 
    <antcall target="build-LEIS-components"/> 
    <antcall target="build-pm"/> 
    <antcall target="build-proxy"/> 
    <antcall target="build-cpc"/> 
</target> 

+1

Estoy bastante seguro de que puede invocar scripts Ant de Gradle, ¿podría hacerlo en su lugar? –

+2

¿Por qué no lo intentas y publicas cuando tienes un problema específico? Pedirle a alguien que lo haga por usted no obtendrá muchas respuestas. –

+0

Debe leer esta guía: https://docs.gradle.org/current/userguide/ant.html. Describe muy bien el proceso. –

Respuesta

10

Ant y Gradle tomar algunos enfoques fundamentalmente diferentes a la construcción de proyectos de Java. En lugar de tratar de convertir sus tareas Ant en Gradle, es probable que le resulte más fácil usar una combinación de reestructuración de su proyecto para usar las convenciones de Gradle con cierto grado de personalización.

En su caso particular, tomaría un enfoque gradual. Elige 1 de tus 9 objetivos hormiga (como "build-pm") y concéntrate en construirlo primero. Debería darte una buena idea de cuánto esfuerzo tendrás que pasar convirtiendo tus tareas de hormiga en gradle.

+0

Gran respuesta. Creo que las diferencias de enfoques no se destacan lo suficiente cuando las personas intentan pasar de Ant a Gradle ... la respuesta de importaciónCuadro está en todas partes, pero ¿qué pasa si quiero deshacerme de la hormiga y usar solo gradle? ¿Puedo reescribir mis tareas de hormiga en gradle? – YaP

27

Utilice simplemente

ant.importBuild 'build.xml' 

a que importar toda la escritura de hormigas y reemplazar las tareas de una en una para empezar. Más tarde intente refactorizar su proyecto en las convenciones gradle para que sus tareas se vuelvan obsoletas.

Cuestiones relacionadas