新闻动态

JuJing News

  1. 您现在的位置:首页
  2. 资讯中心
  3. 网络
  4. 使用ant调用maven命令

使用ant调用maven命令

2020年05月07日发布 浏览6020次
内容摘要: maven和ant的区别在于关注点不同,maven关注于项目本身,仅是依赖管理、项目生命周期管理,对于项目以外的文件复制、创建文件夹、执行系统命令、执行java命令、多个任务之间的依赖管理等力不从心,比如maven中多个互…

在java开发中,ant是一个古老而成熟的工具,集成了众多开发中用到的命令和任务,可以批量和自动执行编译 构建 打包 测试 分发等。虽然现在很多IDE工具都已经将此过程自动化,开发时开发人员无需使用ant也能完成开发任务。但是遇到重复执行 批量执行时,IDE工具就显得力不从心了。遇到重复和批量操作时,一个任务需要点很多次鼠标操作,才能完成,特别是需要重复修改和测试的功能。


现在的开发中,maven打包工具已在大多数JAVA项目中使用,也是编译 构建 打包 测试等过程。maven和ant的区别在于关注点不同,maven关注于项目本身,仅是依赖管理、项目生命周期管理,对于项目以外的文件复制、创建文件夹、执行系统命令、执行java命令、多个任务之间的依赖管理等力不从心,但ant提供了

AntCall、ANTLR、AntStructure、AntVersion、Apply/ExecOn、Attrib、Augment、Available、Basename、Bindtargets、BuildNumber、BUnzip2、BZip2、Cab、Continuus/Synergy
 Tasks、CvsChangeLog、Checksum、Chgrp、Chmod、Chown、ClearCase 
Tasks、Componentdef、Concat、Condition、Supported 
conditions、Copy、Copydir、Copyfile、Cvs、CVSPass、CvsTagDiff、CvsVersion、Defaultexcludes、Delete、Deltree、Depend、Dependset、Diagnostics、Dirname、Ear、Echo、Echoproperties、EchoXML、EJB
 
Tasks、Exec、Fail、Filter、FixCRLF、FTP、GenKey、Get、GUnzip、GZip、Hostinfo、Image、ImageIO、Import、Include、Input、Jar、Jarlib-available、Jarlib-display、Jarlib-manifest、Jarlib-resolve、Java、Javac、JavaCC、Javadoc/Javadoc2、Javah、JDepend、JJDoc、JJTree、Jlink、Jmod、JspC、JUnit
 (3 & 4)、JUnitLauncher (JUnit 
5)、JUnitReport、Length、Link、LoadFile、LoadProperties、LoadResource、Local、MacroDef、Mail、MakeURL、Manifest、ManifestClassPath、MimeMail、Mkdir、Move、Native2Ascii、NetRexxC、Nice、Parallel、Patch、PathConvert、PreSetDef、ProjectHelper、Property、PropertyFile、PropertyHelper、Pvcs、Record、Rename、RenameExtensions、Replace、ReplaceRegExp、ResourceCount、Retry、RExec、Rmic、Rpm、SchemaValidate、Scp、Script、Scriptdef、Sequential、ServerDeploy、SetPermissions、SetProxy、SignJar、Sleep、SourceOffSite、Sound、Splash、Sql、Sshexec、Sshsession、Subant、Symlink、Sync、Tar、Taskdef、Telnet、Tempfile、Touch、Translate、Truncate、TStamp、Typedef、Unjar、Untar、Unwar、UnXZ、Unzip、Uptodate、VerifyJar、Microsoft
 Visual SourceSafe Tasks、Waitfor、War、WhichResource、WebLogic JSP 
Compiler、XmlProperty、XmlValidate、XZ、XSLT/Style、Zip

等159个常用任务,详细的任务说明ant任务说明https://ant.apache.org/manual/index.html


是否可以将两者结合使用呢,让maven关注项目生命周期,ant来作maven不能作的任务,互相作有益的补充,巨鲸信息的技术人员,尝试使用了如下配置,来完成maven和ant的结合使用。


ant的配置方式有两种,第一种使用IDE如eclipse系统自带的ANT工具,无需配置。第二种,IDE之外,自己单独安装的ANT工具。这里推荐使用第一种方式,eclipse会自动识别当前项目的目录位置,ant脚本即是在当前目录中执行,简少配置,同时与项目结合也较好。第二种配置,请参考如下配置:

下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。

添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:"apache-ant-1.7.0。

安装与配置完毕后,读者可以测试一下Ant是否可用,首先进入Ant的bin目录,运行命令ant –version,若安装和配置成功,则会显示Ant版本信息   

由上可以看出,读者运行Ant的命令时,需要进入到Ant的bin目录,如何才能让系统自动 找到Ant呢?这时需要读者在系统环境变量path中添加Ant的bin目录。设置完成后,我们就可以在任何目录(例如C:"Documents and Settings"AmigoXie目录)输入Ant的命令,来获得命令的运行结果。

maven的配置,请参考如下配置:

设置 Maven 环境变量

添加环境变量 MAVEN_HOME:

右键 "计算机",选择 "属性",之后点击 "高级系统设置",点击"环境变量",来设置环境变量,有以下系统变量需要配置:

新建系统变量 MAVEN_HOME,变量值:E:\Maven\apache-maven-3.3.9,编辑环境变量Path,追加%MAVEN_HOME%\bin\;我们可以通过DOS命令检查一下我们是否安装成功:

mvn -v

好了,至此 maven和ant两个工具都已配置成功,我们在项目中配置ant脚本,让ant开始配合maven工作。在项目根目录新建build.xml文件,添加如下内容,来调用Maven命令:


<?xml version="1.0" encoding="UTF-8"?>
<project name="myproject" default="install" basedir=".">
    <description>
        自动化工具
    </description>
<property name="build" location="build"/> <property name="dist" location="dist"/>

<target name="pkg-a">
    <echo>打包。。。</echo>
        <exec executable="mvn.cmd">
            <arg value="-f" />
            <arg value="project-a\pom.xml" />
            <arg value="clean" />
            <arg value="package" />
            <arg value="-Dmaven.test.skip=true" />
        </exec>
        <echo>打包成功!</echo>
    </target>
    
    <target name="install-a"
        depends="install-b,install-c">
        <exec executable="mvn.cmd">
            <arg value="-f" />
            <arg value="project-a\pom.xml" />
            <arg value="clean" />
            <arg value="install" />
            <arg value="-Dmaven.test.skip=true" />
        </exec>
    </target>
     <target name="install-b">
        <exec executable="mvn.cmd">
            <arg value="-f" />
            <arg value="project-b\pom.xml" />
            <arg value="clean" />
            <arg value="install" />
            <arg value="-Dmaven.test.skip=true" />
        </exec>
    </target>
    <target name="install-c">
        <exec executable="mvn.cmd">
            <arg value="-f" />
            <arg value="project-c\pom.xml" />
            <arg value="clean" />
            <arg value="install" />
            <arg value="-Dmaven.test.skip=true" />
        </exec>
    </target>
    </project>

 添加完配置文件,在eclipse里,有个ant视图,打开ant视图,会自动显示该build.xml里的target,选中一个执行即可,任务间会有依赖,选中有依赖的任务,会依次调用maven执行任务。各个任务会依次进行,中间不会停顿,不用点鼠标干预,完全自动化。若多次执行,会发现节少了大量的时间和精力。河南巨鲸信息技术有限公司,专注于信息技术,使用成熟的信息技术服务社会!