在eclipse中每次构建后运行批处理文件

She*_*tib 6 eclipse android

我有很多我同时工作的项目.

每次我构建并运行其中一个时,apk就像往常一样位于bin文件夹中.

如果我想将这个apk复制到项目之外的其他文件夹,我必须手动完成.

我创建了一个批处理文件,将我所有项目的apk文件复制到所需的位置.


有没有办法将bin文件夹的输出位置更改为项目之外的某个位置,或者更优选地在每次构建后运行批处理文件


注意

我正在使用ADT与eclipse.我试图添加一个执行批处理文件的构建器.但是,运行批处理文件时,尚未生成apk文件.我尝试了构建器中所有选项的组合以及所有可能的构建器序列.

Nic*_*ckT 5

如果您只是在完善构建时使用Eclipse,那么切换到最终构建的命令行,然后使用Ant,只需很少的努力或配置就可以轻松获得所需的内容.

假设

1)您的源代码位于Android工作区中,您将最终得到两组二进制文件 - 一组由Eclipse生成,另一组由Ant生成,最终将在工作区外部由PROPERTIES文件设置

2)您正在使用SDK14或15(Ant在14中更改)

3)你已经安装了Ant并且在你的路径中 - 你需要拥有Ant 1.8.2 - 这不是Eclipse使用的内部版本,你可能必须从Apache站点获取它,它很容易安装

脚步

1)按照http://developer.android.com/guide/developing/projects/projects-cmdline.html中的说明从命令行创建一个示例项目

例如我使用:android create project --target 8 --name Sample15App --path c:\ dev\projects\samples\Sample15 --activity Sample15Activity --package com.me.samplefifteen

这将创建一个目录和一些文件,稍后您将在项目中将其用作模板

2)在Eclipse的工作区中创建一个示例项目,我在我的一个工作区中创建了EclipseSample

3)将以下文件从Sample15App复制到EclipseSample项目的根目录:

build.xml ant.properties local.properties

4)编辑ant.properties(最初为空)就像这个例子:

projectname=EclipseSample
workspace.dir=/dev/projects/EclipseIndigo/AndroidWorkTwo
base.dir=${workspace.dir}/${projectname}
outbasebase.dir=/dev/projects/AntBuilds
outbase.dir=${outbasebase.dir}/${projectname}
ant.project.name=${projectname}
out.dir=${outbase.dir}/bin
layout.dir=${base.dir}/res/layout
source.dir=${base.dir}/src
Run Code Online (Sandbox Code Playgroud)

从中你可以看到我的工作区是/ dev/projects/EclipseIndigo/AndroidWorkTwo

这下的eclipse项目位于EclipseSample目录中

我希望我的apks最终出现在/ dev/projects/AntBuilds / EclipseSample中(即outbasebase与projectname -so连接,对于其他项目,你可以使用非常相似的ant.properties文件只需更改projectname)

5)重要 - 编辑build.xml

注释掉或删除该行:

<project name="Sample15App" default="help">
Run Code Online (Sandbox Code Playgroud)

用它替换它

<project>
Run Code Online (Sandbox Code Playgroud)

这只是意味着它将从ant.properties而不是build.xml中获取项目名称,并且您可以在所有项目中使用相同的build.xml,只有ant.properties需要更改

6)尝试使用"ant debug"应该在/ dev/projects/AntBuilds/EclipseSample下构建调试apks

7)最后如果你想自动化发布版本(自动签名和密码输入)添加如下行

key.store.password=YourPassword
key.alias.password=YourPassword
key.store=c:/users/you/yourrelease-key.keystore
key.alias=release_alias
Run Code Online (Sandbox Code Playgroud)

到ant.properties然后你只需输入"ant release"

如果你不添加它们,它将告诉你手动签名,因为在'build.properties'中没有找到密码条目( - 这就是之前在SDK 14之前调用的ant.properties,它们应该已经纠正了这个!)