在Bamboo中构建之前更改包名称

时间:2011-02-28 19:05:05

标签: java build-process bamboo

我最近发现BlackBerry treats all classes with the same fully-qualified name as identical - 无论它们是否在完全不同的应用程序中 - 导致使用不同版本的共享库的应用程序在安装在同一部手机上时会中断。

要解决此问题,我们计划更改软件包名称以包含版本号,然后构建。有人可以解释如何使用Bamboo,我可以在我们的构建过程中插入一个步骤:

  • 更改某些包名称
  • 使用对新软件包名称的引用替换旧软件包名称的所有代码引用?

2 个答案:

答案 0 :(得分:2)

一个很棒的工具是jarjar,它专门用于更改jar文件中Java类的完全限定名称的任务。它可以在Ant中轻松使用,也可以from a shell script使用。

我从未使用Bamboo - 我认为它也应该在那里工作。当然,在那个环境中可能有一些特殊的限制(关于字节码操作),我不知道(?)

答案 1 :(得分:2)

我不熟悉Bamboo,但您没有包含有关构建系统的大量信息。如果您使用的是maven,则可以使用shade plugin

  

这个插件提供了将工件打包在超级jar中的功能,包括它的依赖关系和阴影 - 即重命名 - 一些依赖项的包。

second example here显示了如何配置程序包重命名。然后,生成的jar文件必须由rapc处理,如Chris Lerchershis answer的评论。应该可以使用exec plugin将其集成到maven构建中。

相关问题