Ant和Gradle采用了一些根本不同的方法来构建java项目。您可能会发现,与其尝试将Ant任务转换为Gradle,不如将项目的重组组合起来,使用Gradle的约定进行一定程度的自定义。
如何将ant脚本转换为gradle脚本?你好你能帮我把ant脚本转换成gradle脚本吗。我是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>
只需使用
ant.importBuild 'build.xml'
导入整个ant脚本并逐个替换任务即可开始。稍后尝试将您的项目重构为gradle约定,这样您的任务就会过时。
在你的特殊情况下,我会采取渐进的方法。从你的9个蚂蚁目标中选择一个(比如"构建pm"),并首先专注于构建它。它应该能让你很好地了解将蚂蚁任务转换为等级需要花费多少精力。