我们为合同编写应用程序 - 我们有很多应用程序,他们都使用我们的库。但是我们无法控制它们何时发布,这取决于客户端,所以它们都有我们库的不同版本(它总是被添加到)。黑莓 - 使用共享库时避免重复包名
我想知道什么避免在每个项目中使用相同的包名称的正确方法是?我相信这对于这里的经验丰富的BB开发者来说是有意义的。
对于我的发行版本,我重构了库以便为该项目使用唯一的包名称(通常通过将客户端名称放入包结构中)。但是这会增加eclipse的svn客户端的时间,麻烦和麻烦。这样做似乎完全错误(但它的工作原理)。
必须有一个正确的方法来做到这一点,甚至一些工具或脚本,因为被迫沿着这条路走下去似乎每次都是错误的。什么是避免这个问题的正确途径。
的为什么这是一个问题的解释:
- 如果安装使用相同的封装结构某处他们许多应用程序,那么该设备将覆盖包。例如如果我使用
com.ric.sdk
作为我的库,那么使用我的sdk的每个应用程序都将覆盖其中的任何版本。
这很好,如果我们只是每次升级。对于我们来说,一些问题同时发生冲突,对我们造成问题:
- 我们为许多不同的客户端编写应用程序,并且喜欢为每个客户端使用我们的通用代码。
- 我们是一家新公司,我们的sdk越来越多。每个应用程序通常会向某些课程或其他课程添加一些方法。所以每个新应用都需要最新的SDK。旧的应用程序仍然可以使用新的SDK。新的应用程序将与旧的SDK打破。
- 我们没有发布控制,所以不能确定所有的应用总是有最新的sdk。
例如我们有一个8个月前创建的广播流应用程序。和3个月前的视频流应用(无关客户端)。本月的车辆追踪应用程序。如果有人安装了跟踪应用程序,然后发现&安装了电台应用程序,则新的sdk将被旧电视应用程序覆盖,并且跟踪应用程序中断,因为它与旧的sdk不兼容。
(具有相同的问题,这个问题涉及:Do apps downloaded from App World share projects?)
我们已经吸取了教训,现在每个应用程序的最终版本之前重构SDK,以一个独特的名字,例如: radio.ric.sdk
或video.ric.sdk
。
但是,这是一个可怕的过程,与svn混乱,浪费时间,允许人为错误等 - 是否有一个工具,为我做这个?我不相信我们正在以正确的方式去做。
你是否在使用PersistentStore? – jprofitt
@jprofitt - 是的,但我不明白这是如何相关的。我有兴趣知道是否有一种工具可以将包名修改为唯一的名称,因此同一个SDK可以安全地用于多个应用程序(使用不同的分布式名称)。 –
...只是为了“链接”到另一个类似的问题:http://stackoverflow.com/questions/5146365/changing-package-names-before-building-in-bamboo –