当前位置:首页 » 编程软件 » ant脚本教程

ant脚本教程

发布时间: 2023-03-27 18:53:04

java中ant脚本是什么东西

内容摘要:
ANT是一个基于Java的自动化脚本引擎,脚本格式为XML。除了做Java编译相关任务外,ANT还可以通过插件实现很多应用的调用。
1)ANT的基本概念:
2)ANT的安装:解包,设置路径
3)ANT的使用:最好的学习只不过是一个简单实用的例子起步……

ANT的基本概念:Java的Makefile

当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。

每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。

任务1:usage 打印本脚本的帮助信息(缺省)
任务2:clean <-- init 清空初始化环境
任务3:javadoc <-- build <-- init 生成JAVADOC
任务4:jar <-- build <-- init 生成JAR
任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc

而多个任务之间往往又包含了一定了依赖关系:比如把整个应用打包任务(jar)的这个依赖于编译任务(build),而编译任务又依赖于整个环境初始化任务(init)等。

注:我看到很多项目的ant脚本中的命名基本上都是一致的,比如:编译一般叫build或者compile;打包一般叫jar或war;生成文档一般命名为javadoc或javadocs;执行全部任务all。在每个任务的中,ANT会根据配置调用一些外部应用并配以相应参数执行。虽然ANT可调用的外部应用种类非常丰富,但其实最常用的就2,3个:比如javac javadoc jar等。

ANT的安装

解包后在系统可执行路径中加入指向ant的bin的路径就可以了,比如可以在GNU/Linux上把以下配置加入/etc/profile中:
export ANT_HOME=/home/ant
export JAVA_HOME=/usr/java/j2sdk1.4.1
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin

这样执行ant 后,如果不指定配置文件ant会缺省找build.xml这个配置文件,并根据配置文件执行任务,缺省的任务设置可以指向最常用的任务,比如:build,或指向打印帮助信息:usage,告诉用户有那些脚本选项可以使用。

ANT的使用

最好的学习过程就是看懂那些open source项目中的build.xml脚本,然后根据自己的需要简化成一个更简单的,ANT和APACHE上很多非常工程派的项目:简单易用,而且适应性非常强,因为这些项目的建立往往来源于开发人员日常最直接的需求。

❷ ant 脚本中如何设置jdk的路径

方法1:
直接修改ANT的运行文件:ant.bat ,设置JAVA_HOME,这样所有的ANT都使用设定的JDK也是一种方法; 我以前做Jetty也是这么做的,挺方便;

方法2:
<javac srcdir="${src}"
destdir="${build}"
fork="yes"
executable="/opt/java/jdk1.1/bin/javac"
compiler="javac1.5"
/>

这样就可以制定特定的java编译器了

❸ 用ant脚本执行sql语句

两步即可:
1.将执行sql语句的命令写在一个 xx.bat文件里面
2.在build.xml脚本里 使用 exec标签来执行bat文件即可
例如:<exec executable=" xx.bat" ></exec>

你们数据库是什么数据库呢?如果是oracle数据库,那么执行sql语句的命令是用 sqlplus user/pwd@db example.sql

关于ant脚本标签,请参考:http://hi..com/woxfy/blog/item/8359887a281899fe0ad1878d.html

❹ android studio能直接运行ant脚本吗

一、Ant插件的安装
由于之前我安装过IntellijIdea,所以我就用一个比较偷懒的方式,直接从那儿复制插慧辩件过来啦:

然后,将这个文件夹复制到AndroidStudio里面的plugin目录下:

大功告成了,现前猜缺在可以直接在AndroidStudio中使用ant脚本了。
二、运行ant脚本
在Android项目下新建一个build.xml文件如下:

各个项目的路径和jar包路径之类的,改成自己的就可以兆启成功了
之前由于没有指定子工程的jar文件路径,编译javac的时候就会报下面这个错误:
Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.Java:1150)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:912)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)

指定后就编译成功了。

❺ 如何使用Ant脚本编译出Jar和Apk包

首先我们来看看如何使用ant脚本打出一个jar包 我们新建一个工程AntExportJar 在工程的目录下面新建一个build.xml,这个是ant脚本规定的一个入口脚本文件,文件名都是:build.xml [html] view plain ?
<?xml version ="1.0" encoding ="UTF-8" ?>
<project name ="AntExportJar" basedir ="." default ="exportJar" >
????<!--?设置全局变量?-->
????<property name ="src" value ="src" />
????<property name ="dist" value ="dist" />
????<property name ="app.name" value ="ant" />
????<property name ="app.version" value ="1.0" />
????<property name ="classes.encode" value ="GBK" />
????<property name ="lib" value ="libs" />

????<property
????????name ="project-dir"
????????value ="C:\Users\i\workspace\AntExportJar" />
????<property
????????name ="sdk-folder"
????????value ="C:\Users\i\AppData\Local\Android\sdk" />
????<property
????????name ="platform-folder"
????????value ="${sdk-folder}\platforms\android-22" />
????<property
????????name ="android-jar"
????????value ="${platform-folder}\android.jar" />
????<property
????????name ="src"
????????value ="${project-dir}\src" />
????<property
????????name ="bin"
????????value ="${project-dir}\bin" />
????<property
????????name ="libs"
????????value ="${project-dir}\lib" />

????<!--?task?-->
????<target name ="init" >
????????<echo>
????????????Initialize...
????????</echo>
????????<delete dir ="${bin}" />
????????<mkdir dir ="${bin}" />
????</target>

????<target name ="buildFiles" depends ="init" >
????????<javac
????????????????bootclasspath ="${android-jar}"
????????????????compiler ="javac1.7"
????????????????target ="1.7"
????????????????destdir ="${bin}"
????????????????encoding ="GBK"
????????????????includeAntRuntime ="true"
????????????????listfiles ="true" >
????????????????<src path ="${project-dir}" />
????????????????<classpath>
?????????????????????<!--?引用第三方jar包需要引用,用于辅助编译,并没有将jar打包进去。jar的打包在dex命令中。-->
?????????????????????<fileset dir ="${libs}" includes ="*.jar" />
????????????????</classpath>
????????</javac>
????</target>

????<!--?导出jar文件?-->
????<target name ="exportJar" depends ="buildFiles" >
????????<delete dir ="${dist}" />
????????<!--?Create?the?distribution?directory?-->
????????<mkdir dir ="${dist}" />
????????<!--?Put?everything?in?${classes}?into?the?MyProject-${DSTAMP}.jar?file?-->
????????<jar jarfile ="${dist}/${app.name}.jar" basedir ="${bin}" >
????????????<!--
????????????<fileset?dir="${libs}"?includes="**/*.jar"?/>
????????????-->
????????????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/Bai_NativeAd_SDK.jar" />
????????????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/gdt_mob_release.jar" />
????????</jar>
????</target>
</project>
脚本很简单,下面我们就来分析一下: [html] view plain ?
<project name ="AntExportJar" basedir ="." default ="exportJar" >
最外围的一个标签是project,是一个工程标签,有名字,还有就是工程的目录baseDir,用点号:"." 接下来就是定义全局变量,或者是属性值: [html] view plain ?
<!--?设置全局变量?-->
<property name ="src" value ="src" />
<property name ="dist" value ="dist" />
<property name ="app.name" value ="ant" />
<property name ="app.version" value ="1.0" />
<property name ="classes.encode" value ="GBK" />
<property name ="lib" value ="libs" />

<property
????name ="project-dir"
????value ="C:\Users\i\workspace\AntExportJar" />
<property
????name ="sdk-folder"
????value ="C:\Users\i\AppData\Local\Android\sdk" />
<property
????name ="platform-folder"
????value ="${sdk-folder}\platforms\android-22" />
<property
????name ="android-jar"
????value ="${platform-folder}\android.jar" />
<property
????name ="src"
????value ="${project-dir}\src" />
<property
????name ="bin"
????value ="${project-dir}\bin" />
<property
????name ="libs"
????value ="${project-dir}\lib" />
这样我们在后面就可以使用:${name值} 来使用value值的定义了,所以这里就相当于定义了变量的作用,这里我们看到有一些value值是路径,但是这里我们感觉有一个不好的地方,就是这些路径是写死的,那么我们还可以怎么做能让他变得灵活呢?其实很简单,ant脚本中是可以访问环境变量的,那么我们只要将这些路径定义成环境变量就可以了: [html] view plain ?
<property environment ="env" />
<property name ="ANDROID_HOME" value ="${env.ANDROID_HOME}" />
第一行先申明一个环境变量值,这个env是公共的写法,也是ant自带的,他表示当前的环境变量的值,那么后面就可以访问具体的哪些环境变量了,比如这里我配置了ANDROID_HOME这个环境变量,那么就可以用${env.ANDROID_HOME}来访问androidsdk的目录了,和上面的那个直接使用绝对路径的方式是一样的。 解析来就是定义task了,在ant中task也是最重要的,我们最终运行的都是task,就相当于Java中的main方法一样。ant脚本中可以定义多个task,而且每个task可以有执行的先后顺序的。相当于Java中的方法中调用其他方法一样。 [html] view plain ?
<!--?task?-->
<target name ="init" >
????<echo>
????????Initialize...
????</echo>
????<delete dir ="${bin}" />
????<mkdir dir ="${bin}" />
</target>
首先这里定义了一个初始化的task,其中echo标签也是很常用的,就是打印信息的,然后是删除目录${bin},这个bin变量在上面已经定义了,然后在创建${bin}目录。 初始化完之后,开始执行编译工作: [html] view plain ?
<target name ="buildFiles" depends ="init" >
????<javac
????????bootclasspath ="${android-jar}"
????????compiler ="javac1.7"
????????target ="1.7"
????????destdir ="${bin}"
????????encoding ="GBK"
????????includeAntRuntime ="true"
????????listfiles ="true" >
????????<src path ="${project-dir}" />
????????????<classpath>
????????????????<!--?引用第三方jar包需要引用,用于辅助编译,并没有将jar打包进去。jar的打包在dex命令中。-->
????????????????<fileset dir ="${libs}" includes ="*.jar" />
????????????</classpath>
????</javac>
</target>
这里在此定义一个buildFiles的task,depends的值是表示当前的task在这个depends的task执行完之后在执行,这里就是先执行init的task,然后在执行buildFiles的task,这里的task主要是编译Java成class文件: bootclasspath:表示编译依赖的系统库,这里依赖的是android.jar compiler:表示编译的java版本 target:表示编译之后的class的版本,就是能够运行的java版本 destDir:表示编译之后的class文件的存放目录 其他的就不说了,这里还有一个重点,也就是我们在编译的时候会遇到的问题,就是我们在编译的时候,会引用到第三发的jar,所以这里我们为了保证能够编译过,这里还必须用classpath标签来引用这些jar,当然这里只是能够保证编译通过,并不会把这些jar也编译到最终我们想要的jar中,这个问题我们后面再说。 下面在看最后的一个task,就是将编译完之后的class文件打包成jar文件: [html] view plain ?
<!--?导出jar文件?-->
<target name ="exportJar" depends ="buildFiles" >
????<delete dir ="${dist}" />
????<!--?Create?the?distribution?directory?-->
????<mkdir dir ="${dist}" />
????<!--?Put?everything?in?${classes}?into?the?MyProject-${DSTAMP}.jar?file?-->
????<jar jarfile ="${dist}/${app.name}.jar" basedir ="${bin}" >
????????<!--
????????<fileset?dir="${libs}"?includes="**/*.jar"?/>
????????-->
????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/Bai_NativeAd_SDK.jar" />
????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/gdt_mob_release.jar" />
????</jar>
</target>
这里我们定义了一个exportJar的task,他是在buildFiles的task运行完之后在运行。 首先删除目标目录${dist},然后在创建一个目录。这个目录就是存放最后编译好的jar文件的目录 然后就是用jar标签来导出jar文件了: jarfile:表示编译完之后存放的jar文件名路径 basedir:表示需要编译jar的class文件目录 其他就OK了,但是在实际中我们在编译的过程中会引用到第三方的jar,那么这时候我们把这些jar编译到最终的jar中,说道这里,其实我们在使用Eclipse导出jar的时候,有一个插件可以做到这点:fat-jar,安装完插件

❻ 如何在Jenkins Ant脚本中使用正则表达式

方法/步骤

1
下载并安装一个Jenkins服务器,它是开源的,可以从如下地址了解并下载安装(如图):
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins

2
进入Jenkins服务器磁盘系统,新建一个文件夹,并在里面建立两个文件(如图):
1. CmdOutput.txt 文件,存放测试数据的一个文件;
2. BuildTest.xml 文件,用来执行构建的ant脚本文件。

3
打开 CmdOutput.txt 文件,输入类似如下的测试数据(如图):
RunTest output: Begin to start TestExecute/TestComplete Instance on remote computer ...*
TestExecute.TestExecuteApplication.10
Begin to open TestExecute/TestComplete project suite on remote computer ...*
2
后面的Ant脚本将会先加载读取这个文件的内容,然后把最后一行的返回代码“2”提取出来.

4
打开 BuildTest.xml 文件,输入如下的Ant脚本(如图)。里面将会使用propertyregex来提取返回代码,其中property用来指定提取到的值存放在什么属性里面,input用来指定匹配来源,regexp用来指定正则表达式,select用来指定选择哪个匹配子项,casesensitive指定是否区分大小写。:
<project name="hello" basedir="." default="Test" xmlns:props="antlib:org.apache.ant.props">
<property environment="JenkinsEnv"/>

<!--
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>
-->

<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>

<typedef uri="antlib:org.apache.ant.props"
resource="org/apache/ant/props/antlib.xml"
classpath="${JenkinsEnv.ANT_HOME}\\ant-props-1.0Alpha.jar" />
<propertyhelper>
<props:nested/>
</propertyhelper>

<!-- *********************************************** -->

<target name="GetReturnCode">
<loadfile property="CmdOutput" srcFile="CmdOutput.txt"/>
<echo message="CmdOutput: ${CmdOutput}" />
<propertyregex property="ResultCode"
input="${CmdOutput}"
regexp="^([\s\S]*)(\r?\n)+(\d{1,})(\r?\n)*"
select="\3"
casesensitive="false" />
<echo message="ResultCode: ${ResultCode}" />
</target>
</project>

5
在Jenkins服务器上建立一个TEST的Job,然后点击配置按钮(如图):

6
在构建的标签处,添加一个Invoke Ant,然后分别输入要构建的Ant脚本文件,和要跑的任务Target(如图):

7
点击保存按钮保存上一步做的配置,然后点击Build Now按钮开始构建Job(如图):

8
构建完毕之后,把鼠标放到构建记录上面,点击下拉箭头,弹出菜单中选择“Console Output”查看控制台输出(如图):

9
结果页面中,前面 CmdOutput.txt 文件中的返回代码“2”被提取并显示出来了(如图):

http://jingyan..com/article/380abd0a6c6e7d1d90192cb4.html

❼ 如何用ant执行jmeter脚本

1、下载ant
2、配置环境变量
以windows下配置为例
①配置ant环境变量
ANT_HOME=D:Program Filesapache-ant-1.10.0
CLASSPATH=%ANT_HOME%lib
Path=%ANT_HOME%in
②检查ant是否配置成功:命令行输入ant -version
3、将JMeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
4、修改JMeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
5、新建一个脚本存放目录,以及报告存放目录report,将*.jmx(已经调试OK的脚本)拷贝此目录
6、在创建的目录下新建一个build.xml文件(ant自动构建文件)


7、cmd进入脚本上面创建的目录。(即build.xml所在的目录)
8、输入:ant  或 ant run(run为build.xml中的task名),即可执行脚本并生成报告

❽ ant脚本如何获取cmd脚本中设置的变量值

env.xml 代码如下

代码:
<?xml version="1.0"?>

<project name="project" default="build">
<property environment="env"/>
<property name="build_number" value="${env.BUILD_NUMBER}"/>
<target name="build" description="Get the build number from windows environment variables">
<echo message="Build Number is ${build_number}" level="info"/>
</target>
</project>首先要在windows 环境变量中设置这个值,然后就可以用 ant 获得。
运行结果如下:
引用:
C:\Documents and Settings\scmroad\Desktop\Ant_Script>set BUILD_NUMBER=9999
C:\Documents and Settings\scmroad\Desktop\Ant_Script>ant -f env.xml
Buildfile: env.xml

build:
[echo] Build Number is 9999

BUILD SUCCESSFUL
Total time: 0 seconds
C:\Documents and Settings\scmroad\Desktop\Ant_Script>
C:\Documents and Settings\scmroad\Desktop\Ant_Script>set BUILD_NUMBER=8888

C:\Documents and Settings\scmroad\Desktop\Ant_Script>ant -f env.xml
Buildfile: env.xml

build:
[echo] Build Number is 8888

BUILD SUCCESSFUL
Total time: 0 seconds
C:\Documents and Settings\scmroad\Desktop\Ant_Script>

❾ 透过ant脚本,编译打包android工程怎么解决

通过ant脚本,编译打包android工程方法步骤如下:
1.Android程序编译、打包、签名、发布的三种方式:
方式一:命令行手动编译打包
方式二:使用ant自动编译打包
方式三:使用eclipse+ADT编译打包
2.Android编译、打包的步骤:
2.1第一步 生成R.java类文件:
Eclipse中会自动生成顷段R.java,ant和命令行使用android SDK提供的aapt.ext程序生成R.java。
2.2第二步 将.aidl文件生成.java类文件:
Eclipse中自动生成,ant和命令行使用android SDK提供的aidl.exe生成.java文件。
2.3第三步 编译.java类文件生成class文件:
Eclipse中自动生成,ant和命令行使用jdk的javac编译java类文件生成class文件。
2.4第四步 将class文件打包生成classes.dex文件:
Eclipse中自动宴猛生成,ant和命令行使用android SDK提供的dx.bat命令行脚本生成classes.dex文件。
2.5第五步 打包资源文件(包括res、assets、androidmanifest.xml等):
Eclipse中自动生成,ant和命令行使用Android SDK提供的aapt.exe生成资源包文件。
2.6第六步 生成未签名的apk安装文件:
Eclipse中自动生成debug签名文件存放在bin目录中,ant和命令行使用android SDK提供的apkbuilder.bat命令脚本生成未签名的apk安装文件。
2.7第七步 对未签名的apk进行签名生成签名后的android文件:
Eclipse中使用Android Tools进行签名,ant和命令行使用jdk的jarsigner对未签名的包进行apk签名。
这个ant脚本只能编译打包一个晌乎桥单独的android工程或依赖一个library 的android工程
首先配置ant的环境变量,这个我就不多少了,自己查。

❿ Java的Ant文件是什么如何创建

Ant是一种基于Java的构建工具。Ant文件是御没配置构建目标过程的XML文件,也称为Ant脚本。
使用普通文本编辑工具可以创建,其内容主要由<project>和<target>标签组成,以下是一个简单的脚本:
<?xml version="1.0" encoding="utf-8"?>
<project default="run">
<target name="run">
<echo>Hello World!</echo>橘拆前
</圆清target>
</project>

热点内容
生女的算法 发布:2025-07-18 08:17:54 浏览:645
加密硬盘推荐 发布:2025-07-18 08:11:22 浏览:944
oppo手机的密码是多少 发布:2025-07-18 08:10:27 浏览:764
2匹压缩机重 发布:2025-07-18 08:01:40 浏览:181
云蚁物联的云存储怎么取消退款 发布:2025-07-18 08:01:39 浏览:486
访问电脑版网页 发布:2025-07-18 08:01:02 浏览:246
php集成软件 发布:2025-07-18 07:54:36 浏览:143
华为密码多少我忘记了告诉我 发布:2025-07-18 07:53:05 浏览:286
安卓怎么上传音乐到网易云 发布:2025-07-18 07:22:22 浏览:375
c语言保存txt文件 发布:2025-07-18 07:01:27 浏览:175