Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

convert ant script into gradle script

Tags:

gradle

ant

How do you convert ant script into gradle script? Hi, Can you please help me to convert ant script into gradle script. I am new user of 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>

like image 380
raman Avatar asked Jun 13 '11 04:06

raman


People also ask

How do I convert to Gradle?

To convert Maven to Gradle, only one command has to run is gradle init in the directory containing the POM. xml. This will convert the Maven build to a Gradle build, generating a settings. gradle file and one or more build.

Does Gradle use ant?

Gradle provides excellent integration with Ant. You can use individual Ant tasks or entire Ant builds in your Gradle builds. In fact, you will find that it's far easier and more powerful using Ant tasks in a Gradle build script, than it is to use Ant's XML format.

What is an ant build script?

Ant is a Java-based build tool created as part of the Apache open-source project. You can think of it as a Java version of make. Ant scripts have a structure and are written in XML. Similar to make, Ant targets can depend on other targets.


2 Answers

Simply use

ant.importBuild 'build.xml'

to import you whole ant script and replace the tasks one by one to get started. Later try to refactor your project into the gradle conventions so that your tasks become obsolete.

like image 106
Leonard Brünings Avatar answered Oct 15 '22 19:10

Leonard Brünings


Ant and Gradle take some fundamentally different approaches to building java projects. Instead of trying to convert your Ant tasks to Gradle, you're likely to find it easier to use a combination of re-structuring of your project to use Gradle's conventions with some degree of customization.

In your particular case, I would take an incremental approach. Pick 1 of your 9 ant targets (like "build-pm") and focus on building that first. It should give you a good idea of how much effort you'll have to spend converting your ant tasks to gradle.

like image 40
MrJohnBBQ Avatar answered Oct 15 '22 20:10

MrJohnBBQ