2天前我问过building android apps from cli,有人建议Gradle建造它并且它有效。
现在我在Blackberry尝试做同样的事情,BlackBerry中是否有Gradle工具?我可以构建,更改包名称并使用预定义的构建签署文件,而无需使用常见的Java gui进行签名等...
我尝试使用不同的资源文件编译相同的java文件,每次都可以通过它们自定义应用程序。
我试过:
Java -jar SignatureTool.jar [[-a [-p password]] [-c] [-C] [-s] [-f [-d] inputFile] [ - r目录] [ - help] codFile codfile ... | csiFile
但是没有运气这对我没有用,我真的不想使用Java UI来签署应用程序,我想完成从命令行执行它的所有操作,所以我可以制作一个脚本,以便以后为我做。
有没有办法使用Ant或Maven来做到这一点?
感谢您阅读!
编辑(添加代码)
我使用bb-ant-tools,我用不同的方法导入第三方jar文件,但没有运气。签名也不起作用。
的build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="smspremiumtemplateBB" default="build">
<property name="jde.home" location="C:\Users\Amir\Desktop\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components"/>
<property name="bb-ant-tools.home" location="C:\Users\Amir\Desktop/eclipse/plugins/org.apache.ant_1.8.4.v201303080030\lib" />
<taskdef resource="bb-ant-defs.xml" classpath="${bb-ant-tools.home}/bb-ant-tools.jar" />
<property file="common.properties" />
<property prefix="project" file="project.properties" />
<property name="dest.dir" location="build" />
<path id="import.jars">
<fileset dir="../MySDK/build" includes="*.jar" />
<fileset dir="../regex/build" includes="*.jar" />
</path>
<path id="src.files">
<fileset dir="src" includes="**/*" />
<fileset dir="res" includes="**/*" />
</path>
<target name="build" depends="">
<mkdir dir="${dest.dir}" />
<copy file="${basedir}/res/img/icon.png" tofile="${dest.dir}/icon.png" />
<rapc
jdehome="${jde.home}"
output="${project.output}"
destdir="${dest.dir}" >
<import refid="import.jars" />
<src refid="src.files" />
<jdp file="${basedir}/project.properties" />
<import location="C:/Users/Amir/Desktop/eclipse/plugins/net.rim.ejde.componentpack5.0.0_5.0.0.36/components/bin/output/regex2.jar" />
<import>
<fileset dir="C:/Users/Amir/Desktop/eclipse/plugins/net.rim.ejde.componentpack5.0.0_5.0.0.36/components/bin/output/" includes="*.jar" />
</import>
</rapc>
</target>
<target name="sign" depends="build">
<sigtool
codfile="${dest.dir}/${project.output}.cod"
jdehome="${sigtool.jde}"
password="${sigtool.password}" />
</target>
<target name="clean">
<delete dir="${dest.dir}" />
</target>
</project>
common.properties文件
jde.home=C:/Users/Amir/Desktop/eclipse/plugins/net.rim.ejde.componentpack5.0.0_5.0.0.36/
sigtool.jde = C:/Users/Amir/Desktop/eclipse/plugins/net.rim.ejde.componentpack5.0.0_5.0.0.36/components
sigtool.password = ********
project.properties文件
output=MySDK
type=midlet
output=regex
type=midlet
output=MyApp
title=App
type=cldc
vendor=Richard
version=1.0.7
description=A nice app
icon=img/icon.png
编辑(解决了签名问题)
签名现在只需要包含.jar文件。我的问题是我的SignatureTool.jar来自rimBB_5.0,我只是改为7.1。
EDIT(为第三方库添加了输出和rapc任务)
<rapc
jdehome="${jde.home}"
output="${project.output}_library"
destdir="${dest.dir}"
>
<src>
<fileset dir="./lib/" includes="*.jar"/>
</src>
<jdp type= "midlet" title="${app.name}_library" vendor="my vendor" version="@{buildversion}" runonstartup="true" startuptier="6"/>
</rapc>
输出
C:\Users\Amir\Desktop\cliTest\antBB>ant build
Buildfile: C:\Users\Amir\Desktop\cliTest\antBB\build.xml
build:
[rapc] Compiling 30 source files to MyApp.cod
[rapc] C:\Users\Amir\Desktop\cliTest\antBB\src\mypackage\ValidationManager.
java:20: error: package me.regexp does not exist
[rapc] import me.regexp.RE;
[rapc] ^
[rapc] C:\Users\Amir\Desktop\cliTest\antBB\src\mypackage\ValidationManager.
java:39: error: cannot find symbol
[rapc] RE regular_expresion = new RE("^"+pattern+"$");
[rapc] ^
[rapc] symbol: class RE
[rapc] location: class ValidationManager
[rapc] C:\Users\Amir\Desktop\cliTest\antBB\src\mypackage\ValidationManager.
java:39: error: cannot find symbol
[rapc] RE regular_expresion = new RE("^"+pattern+"$");
[rapc] ^
[rapc] symbol: class RE
[rapc] location: class ValidationManager
[rapc] 3 errors
[rapc] Error!: Error: java compiler failed: javac -source 1.3 -target 1.3 -
g -O -d C:\Users\Amir\AppData\Local\Temp\rapc_63ff2f31.dir -bootclas ...
BUILD FAILED
C:\Users\Amir\Desktop\cliTest\antBB\build.xml:35: Java returned: 97
Total time: 2 seconds
答案 0 :(得分:1)
有四项蚂蚁任务:
rapc
- 运行编译器
sigtool
- 签署代码
alx
- 创建cod文件和.alx文件的目录结构。 Alx文件用于通过usb-cable安装黑莓应用程序。所谓的"standard install"
jadtool
- 获取一个输入.jad文件,并用一个或多个新的cod文件重写它。 Jad文件用于无线安装。所谓的"OTA install"。
<强>更新强>
假设我们有以下jar库,需要将它们包含在我们的项目中:
编译后,所有这些jar文件将被编译为cod文件。你会得到:
如果您的应用程序文件名是myapp.cod
,那么您需要签名并安装以下文件:
重要的是,myapp.cod
不会包含那些jar文件,myapp.cod
只会引用相应的cod文件(模块)。您需要在设备上签名并安装所有这些鳕鱼文件。
请注意,您无需签名并安装net_rim_api.jar
它是一个系统库,不应安装到设备上,因为设备操作系统已经支持它。