ant编译eclipse
‘壹’ Ant 打包 编译不通过 eclipse可以 命令行不行
在命令行中编译Eclipse 中的整个工程:
用命令行模拟eclipse中Android Project编译流程
1、新建一个Android Project,目前的目录结构如下图:
2、点击右键,Build Project,此时的目录结构如下图:
此时gen目录下产生了R.java,bin目录在工程目录中,显示如上,没有任何内容;但是在终端查看,内容有改变,如下:
只剩下一个classes文件夹,此文件夹为空
对应的命令:
在工程目录下执行如下代码:
生成R文件:
aapt p -f -m -J gen -S res -I ~/android-sdk-linux/platforms/android-18/android.jar -M AndroidManifest.xml
3、点击右键,再一次Build Project
4、点击右键Run as Android Application
对应的命令:
在工程目录下执行以下命令:
生成resources.ap_:
aapt package -f -S res -I ~/android-sdk-linux/platforms/android-18/android.jar -A assets/ -M AndroidManifest.xml -F bin/resources.ap_
生成classes.dex:
dx --dex --output=bin/classes.dex bin/classes
生成HelloWorld_unsigned.apk:
apkbuilder bin/HelloWorld_unsigned.apk -v -u -z bin/resources.ap_ -f bin/classes.dex -rf src -nf libs
签名apk,使用debug key,别名为androiddebugkey,密码是android:
jarsigner -verbose -keystore ~/.android/debug.keystore -signedjar bin/HelloWorld_signed.apk bin/HelloWorld_unsigned.apk androiddebugkey
对齐apk:
zipalign -v 4 bin/HelloWorld_signed.apk bin/HelloWorld.apk
移除临时apk:
rm bin/HelloWorld_unsigned.apk bin/HelloWorld_signed.apk
安装apk:
adb install bin/HelloWorld.apk
5、点击右键,Android Tools->Export Signed Application Package
同样的步骤,只是签名使用的自己创建的数字证书(release版),最后的apk不保存在bin目录下,而是由用户指定。
‘贰’ 在eclipse中,运行java文档时提示:无法找到要运行的Ant文件,是什么问题
因为你不能单纯打开java文件执行呀,eclipse你要执行文件得要导入。当然也不是不可以,但是遇到一整个项目文件时,那么多文件还有配置文件,显然是不可取的。所以建议导入。
导入步骤:
右击资源管理器空白部分,选择新建->java项目:

‘叁’ eclipse中ant怎么使用
用 Eclipse3.1 来创建 Ant 脚本
如果你使用 Eclipse 来编写 Ant,建议使用 Eclipse 3.1 以后的版本。除了以前 Ant 编辑器提供的语法高亮,提示语法错误等功能外,Eclipse3.1 版本增加了许多新的功能。比如:脚本代码的折叠;快速定位某属性或者目标(target)段的定义;在同一 builder 文件中重构属性名和目标名(快捷方式 Alt + Shift +R);调试 Ant 脚本等。
下面我们就来看看 Eclipse 3.1 中对 Ant 的支持
打开“File”-“New”-“Project”-“Simple”-“Project”,点击“Next”,输入工程名“Ant”,然后点击直到“Finish”
在新建的 Ant 工程中,新建 Test.xml,并且拷贝下面的脚本。该段脚本的内容就不做介绍了,我们主要看 Eclipse 提供了哪些功能。注意这时候打开的并不是 Ant 编辑器,将内容拷贝进去之后,关掉打开的“Test.xml”,然后再重新打开它,这样 Eclipse 就会用 Ant 编辑器打开它,并且也语法高亮了。
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="init" basedir=".">
<property name="test" value="test"/>
<target name="init">
<echo>${test}</echo>
</target>
</project>
自动提示和代码折叠功能。如果是 Ant 内置的命令或者前面已经定义的变量,编辑器会自动提示;编辑器右边的加 / 减号可以代码折叠。如下所示:
快速定位目标(target)或者定义变量处。在上图中,将鼠标移至 default=”init” 中的 init 上之后,按下 ctrl 键,鼠标变成手状,单击就可以定位到定义该目标的地方
快速重构目标名或者属性名。选中目标 / 属性名,按下 Alt + Shift + R,然后键入你要修改后的值,所有引用到的地方都会随之改动。如下图所示,选中 init 后,按下快捷键,改成 initial:
调试 Ant 脚本。在标签“<target name=..”的左边设置一断点,然后在编辑器中右击,出现的菜单中选“Debug As”-“Ant Build”,出现后的窗口与调试 Java 程序的界面差不多。
这是调试窗口,这里可以选择单步跟进、跳出等:
下面是运行时变量窗口。可以看到 test 变量的值是“test”:
运行结果窗口:
由此可见,如果使用好 Eclipse Ant 编辑器所提供强大的功能的话能大大提高写 Ant 脚本的效率。
回页首
Ant 中使用 property(属性)文件
刚开始写 Ant 的初学者可能会把所有的信息都放在 build.xml 中,下面就是这样的一个例子。
<project name="testBuild" default="compile" basedir=".">
<target name="init">
<mkdir dir="c:/temp/dest/testProj" />
</target>
<target name="compile" depends="init">
<javac srcdir="c:/temp/src/testProj" destdir="c:/temp/dest/testProj "/>
<echo>Build into c:/temp/dest/testProj, successfully.</echo>
</target>
</project>
在上面的例子中,所有的路径信息都是写在 build.xml 中。但是 Ant 脚本可能在不同的机器或者不同的系统上运行,也有可能一些值需要根据环境的不同而变化,在 Ant 中可以把所有这些可能变化的地方都放到一个配置文件中,然后在 Ant 脚本中引用这个配置文件就可以了,针对上面的例子,如下所示:
<project name="testBuild" default="compile" basedir=".">
<property file="build.properties"/>
<target name="init">
<mkdir dir="${dest.dir}" />
</target>
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${dest.dir}"/>
<echo>Build into ${dest.dir}, successfully.</echo>
</target>
</project>
build.properties 的内容:
dest.dir=c:/temp/dest/testProj
src.dir=c:/temp/src/testProj
如果想在 Ant 脚本中引用值的话,只需用 $ 符号开头,在一对"{}"中写入要引用的键值。如上例中,需要引用编译的目标路径用"${dest.dir}"。
回页首
使用 Ant 任务从 CVS 中检出(check out)源代码,并编译打包
Ant 中提供了 cvs 任务(Task)可以从 CVS 服务器中检出资源(注意:在使用 Ant 的 cvs 任务之前,请先将 cvs.exe 下载到你的机器,并且将它添加到你本地的 PATH 环境变量中,然后重新启动 Eclipse。否则在执行下面脚本的时候就会得到 error=2 的错误)。cvs 的可选用属性很多,在这里介绍经常使用到的几个属性。从 CVS 中检出资源一般需要指定:
CVS 所在的服务器地址:目标 CVS 服务器地址
用户名:登录该 CVS 服务器你指定的用户名
密码:登录该 CVS 服务器需要的密码
库路径(Repository Path):服务器中的库路径
模块名:当前需要检出的模块名,一般都是以工程的名字作为模块名
标签名:需要从 CVS 中检出哪个标签
在介绍使用 Ant 的 cvs 之前,先说一下本地的目录结构。在 C 盘的 temp 目录下,分别有四个目录,如下所示:
build 目录:放编译后的类以及资源文件
dist 目录:放生成的 jar 文件或者 war 文件
lib 目录:放在编译过程中需要用到的 jar 文件
src 目录:放从 cvs 中检出的源文件(包括 JSP 等)
在 Ant 中这样写就可以从中检出资源:
<cvs cvsRoot=":pserver:username:[email protected]:/home/testPath"
package="TestProj" dest=" c:/temp/src/testProj " failonerror="true" />
这段脚本片断的意思就是从叫"cvs.server"的服务器中,用用户名是 username、密码为 pwd 的用户检出在库路径是 /home/testPath 下的 TestProj 模块(项目),检出后的资源放入本地目录 c:/temp/src/testProj 中。在上面这段脚本中,可以看到有很多值可能会根据不同的环境或者用户随之改变的,比如用户名和密码等;而且从脚本的重复可利用性来说,需要把有些值抽出来放到配置文件中,如服务器的地址和库路径等。因此把这些可能需要更改的地方放到 property 文件中,效果会更好。改完后的完整 Ant 脚本如下所示:
<?xml version="1.0"?>
<project name="testWeb" default="checkout" basedir=".">
<target name="checkout">
<property file="TestWeb.properties" />
<cvs cvsRoot="${cvs.root}" package="${cvs.projectName}"
tag="${cvs.tag}" dest="${src.dir}" failonerror="true" />
</target>
</project>‘肆’ 在用eclipse集成的ant编译web工程的时候,在编译到类文件的时候,就会terminated,但是看不到原因
楼上的,WEB工程 和EXE 有毛关系啊?
楼主,你是ant是在那执行的,应该在控制参有输出啊,
如果是eclipse的话,会出一个蓝色的键接,点击的话,可以到build.xml文件中运行出错的地方。‘伍’ java web项目开发,用ant将java文件编译为class文件和直接在Eclipse运行java文件编译成class,有什么区别
没有任何区别。ant是自动化编译工具,而Eclipse作为IDE,也可以帮助你自动化编译。编译的过程都是调用了你安装的JDK中的java编译器
‘陆’ hadoop1.2.1+eclipse: 执行ant编译错误提示:
.在Eclipse中执行Ant的脚本编译出现问题
Copy
to clipboard
Posted by: njord
Posted on: 2003-08-19
11:40
信息如下:
compile:
[javac]
Compiling 15 source files to
E:\work_home\OakingSecurity\build\classes
[javac] BUILD FAILED:
file:E:/work_home/OakingSecurity/build.xml:48: Unable to find a javac
compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps
JAVA_HOME does not point to the
JDK
我的系统变量设置了JAVA_HOME的,在命令行直接运行ant都没有问题。
请问这是怎么回事?是不是还要在Eclipse中设置什么?
2.Re:在Eclipse中执行Ant的脚本编译出现问题 [Re: njord]
Copy
to clipboard
Posted by: fengyifan
Posted on: 2003-08-19
21:49
put tools.jar in ant classpath
3.Re:在Eclipse中执行Ant的脚本编译出现问题 [Re: njord]
Copy
to clipboard
Posted by: babyoracle
Posted on: 2003-08-20
07:42
用这个方法就可以了
http://www.cjsdn.com/post/view?bid=7&id=45620&sty=3&tpg=1&age=0
4.Re:在Eclipse中执行Ant的脚本编译出现问题 [Re: njord]
Copy
to clipboard
Posted by: njord
Posted on: 2003-08-22
13:03
在Eclipse的首选项中可以配置ANT_HOME,但又出现如下错误:
BUILD FAILED:
java.lang.VerifyError: (class:
org/apache/xerces/parsers/IntegratedParserConfiguration, method:
configurePipeline signature: ()V) Incompatible type for getting or setting
field
Total time: 94 milliseconds
为什么?
5.Re:在Eclipse中执行Ant的脚本编译出现问题 [Re: feng]
Copy
to clipboard
Posted by: njord
Posted on: 2003-08-22
13:12
feng wrote:
put tools.jar in ant
classpath
用Eclipse默认的ANT选项,然后加上tools.jar是可以了,不过它又提示不支持junit任务,晕倒~
[junit]
BUILD FAILED: file:E:/work_home/OakingSecurity/build.xml:76: Could not create
task or type of type: junit.
Ant could not find the task or a class this
task relies upon.
而我用自己下载的Ant1.5.3又出现前面帖子的错误提示,为什么?
6.Re:在Eclipse中执行Ant的脚本编译出现问题 [Re: njord]
Copy
to clipboard
Posted by: njord
Posted on: 2003-08-22
13:19

