Java 在竹子中构建之前更改包名称

Java 在竹子中构建之前更改包名称,java,build-process,bamboo,Java,Build Process,Bamboo,我最近发现,无论它们是否在完全不同的应用程序中,当它们安装在同一部手机上时,使用不同版本的共享库的应用程序都会崩溃 为了解决这个问题,我们计划更改包名以包含版本号,然后构建。有人能解释一下,我如何使用竹子在构建过程中插入一个步骤: 更改某些包的名称 是否将对旧包名的所有代码引用替换为对新包名的引用 这是一个非常好的工具,专门用于更改jar文件中Java类的完全限定名。它可以很容易地从Ant内部使用,或者作为替代 我从来没有用过竹子——我想,竹子在那里也应该有用。当然,在这个环境中可能会有一些特

我最近发现,无论它们是否在完全不同的应用程序中,当它们安装在同一部手机上时,使用不同版本的共享库的应用程序都会崩溃

为了解决这个问题,我们计划更改包名以包含版本号,然后构建。有人能解释一下,我如何使用竹子在构建过程中插入一个步骤:

  • 更改某些包的名称
  • 是否将对旧包名的所有代码引用替换为对新包名的引用

    • 这是一个非常好的工具,专门用于更改jar文件中Java类的完全限定名。它可以很容易地从Ant内部使用,或者作为替代


      我从来没有用过竹子——我想,竹子在那里也应该有用。当然,在这个环境中可能会有一些特殊的限制(关于字节码操作),我不知道(?)

      我不熟悉Bambol,您也没有包含很多关于构建系统的信息。如果您使用的是maven,则可以使用:

      该插件提供了将工件打包到uber jar中的功能,包括其依赖项,并对某些依赖项的包进行着色(即重命名)


      显示了如何配置包重命名。然后,结果jar文件必须由rapc处理,如注释to中所示。还可以使用.

      Drat将其集成到maven构建中,这看起来非常酷,我不确定它是否适用于我们的特定情况。看起来jarjar替代了jar任务,但我们并没有使用jar来构建——BlackBerry有自己的ant任务rapc来处理编译。你知道是否可以使用jarjar来完成软件包重命名步骤吗?@Amanda:我在谷歌上快速搜索了rapc(我对它一无所知)。它看起来也可以与jar文件一起使用:“最后一个参数应该指定一个包含已编译类的jar文件,或者是一个要编译的.java文件的列表。”如果这样做有效,您可以首先对类进行jar,然后应用jarjar,然后在jar上运行rapc。