0

我知道黑莓应用程序签名的自动化,如“java -jar ..signaturetool.jar....”,当我使用 hudson 构建时,我必须通过调用执行 windows 批处理命令 ant 任务在项目配置页面给出。但是我正在编写一个对不同客户端通用的构建,那时我想在构建中包含这种签名的自动化,因为我的应用程序名称将根据客户的名称进行更改并且路径将被更改,所以我想执行构建中的这个命令行,我试过这个,但没有工作,它没有执行 exec ant 任务。任何人都可以帮助我丢失的地方,这是代码:

<property name="signpath" location="C:/Program Files/Research In Motion/BlackBerry JDE 5.0.0/bin/SignatureTool.jar"/>
<exec executable ="cmd" os="Windows XP" > 
 <arg line="java -jar ${signpath} -a -c -p pswd ${codfilepath}/${uid}/${uName}_${version}_${server}.cod"/>  
</exec> 
4

1 回答 1

1

我使用以下 ANT 目标进行签名。它需要使用bb_ant_tools(这似乎是一个行业标准,至少在 stackoverflow 用户中是这样)。

<target name="sign" depends="" 
    description="Signs the final COD file by calling the BlackBerry signing server. The password is stored in the common.properties file." >
    <sigtool
        codfile="${cod.output.dir}/${project.output}.cod" 
        jdehome="${sigtool.jde}" 
        password="${sigtool.password}" 
    />
</target>

所有参数都存储在各种属性文件中(我建议将您的签名密码保存在一个单独的属性文件中,以用于您的项目设置的其余部分)。

我会推荐这种方法,因为 bb_ant_tools 提供了许多有用的功能。


至于为什么exec不起作用,我exec在将所有参数放在一个标签中时遇到了问题。

尝试类似:

<exec executable="java" >
    <arg value="-jar" />
    <arg value="${signpath}" />
    <arg value="-a" />
    <arg value="-c" />
    <arg value="-p" />
    <arg value="pswd " />
    <arg value="${codfilepath}/${uid}/${uName}_${version}_${server}.cod" />
</exec>

根据我的经验,命令行中的每个“空格”字符都意味着您需要<arg value="...." />在脚本中添加一个新行。ymmv。

于 2012-06-15T10:04:07.160 回答