Eclipse与Android(Java)项目的合并问题

Eclipse与Android(Java)项目的合并问题,java,android,eclipse,svn,Java,Android,Eclipse,Svn,我正在使用Eclipse+Subversion进行Android开发。我曾经在我的应用程序中创建一个带有广告的免费版本,而另一个应用程序则不用广告付费,所以我将它们保存在subversion上的两个独立分支中 我发现的问题是,由于这是谷歌Play和其他市场的两个不同应用程序,它们必须有不同的软件包名称。例如,我有: com.package.game com.package.gamefree 当我对游戏的免费版本做了一些更改,并希望将它们与subversion合并到payed分支中时,我发现自己遇

我正在使用Eclipse+Subversion进行Android开发。我曾经在我的应用程序中创建一个带有广告的免费版本,而另一个应用程序则不用广告付费,所以我将它们保存在subversion上的两个独立分支中

我发现的问题是,由于这是谷歌Play和其他市场的两个不同应用程序,它们必须有不同的软件包名称。例如,我有:

com.package.game com.package.gamefree

当我对游戏的免费版本做了一些更改,并希望将它们与subversion合并到payed分支中时,我发现自己遇到了麻烦,因为免费游戏的源文件位于com/package/gamefree下面,payed的源文件位于com/package/game下面

我最后做了一个“手动”合并,一个源文件一个源文件地进行差异化,但我还必须检查那些已经添加到另一个目录中的文件和那些已经删除的文件。浪费时间

那么,有没有办法让subversion知道一个分支中的com/package/game与另一个分支中的com/package/gamefree是“相同”目录


提前多谢,

我猜在这里,但也许你可以在
com.package.gamefree
包的
trunk
上安装免费应用程序

在分支上,您可以让另一个导入在主干上开发的一个作为依赖项库,并使用launcher类将其包装在
com.package.game
下,添加许可证内容


这样,您只需修改一次代码,并构建两个应用程序。

我在这里猜测,但您可能可以在
com.package.gamefree
包的
trunk
上使用免费应用程序

在分支上,您可以让另一个导入在主干上开发的一个作为依赖项库,并使用launcher类将其包装在
com.package.game
下,添加许可证内容


这样,您只需修改代码一次,就可以构建两个应用程序。

在深入搜索了一下之后,我发现我的更好机会只有两个:

  • 以一种巧妙的方式使用ANT,在构建时自动在免费和付费版本之间切换
  • 使用两个版本共享的Android库项目
我已经看到,大多数使用ANT的人不久前都是这样做的,因为没有其他选择,但由于Eclipse/ADT上有Android库项目,这是此类事情的首选方式。即使是在Android的开发文档中,他也说:

如果您正在创建免费和付费版本的应用程序。将两个版本共用的应用程序部分移动到库项目中。两个具有不同包名的依赖项目将引用库项目,并且只提供两个应用程序版本之间的差异

这对我来说似乎是最好的方法,因为我从来没有使用过ANT,而且考虑到库选项,也没有理由学习它

所以我这样做了:我的项目现在被拆分成MyGameCore,这是一个库项目,包含MyGameFree和MyGamePay项目的所有公共文件,现在只有最少的类需要有一个不同的主包名,这样Google Play就知道它们是不同的应用程序,加上原始资产文件夹,根据谷歌文档,该文件夹无法移动到库中。不管怎么说,这些都是二进制文件,当它们被更改时,我只是简单地从一个版本复制到另一个版本,这并不常见

所以从现在开始,我大部分时间只需要处理MyGameCore项目,所做的更改对MyGameFree和MyGamePay项目都有中间效果,而无需合并分支


这将为我节省大量时间,我将从第一行代码开始在我的后续项目中使用它。

在深入搜索了一下之后,我发现我的更好机会只有两个:

  • 以一种巧妙的方式使用ANT,在构建时自动在免费和付费版本之间切换
  • 使用两个版本共享的Android库项目
我已经看到,大多数使用ANT的人不久前都是这样做的,因为没有其他选择,但由于Eclipse/ADT上有Android库项目,这是此类事情的首选方式。即使是在Android的开发文档中,他也说:

如果您正在创建免费和付费版本的应用程序。将两个版本共用的应用程序部分移动到库项目中。两个具有不同包名的依赖项目将引用库项目,并且只提供两个应用程序版本之间的差异

这对我来说似乎是最好的方法,因为我从来没有使用过ANT,而且考虑到库选项,也没有理由学习它

所以我这样做了:我的项目现在被拆分成MyGameCore,这是一个库项目,包含MyGameFree和MyGamePay项目的所有公共文件,现在只有最少的类需要有一个不同的主包名,这样Google Play就知道它们是不同的应用程序,加上原始资产文件夹,根据谷歌文档,该文件夹无法移动到库中。不管怎么说,这些都是二进制文件,当它们被更改时,我只是简单地从一个版本复制到另一个版本,这并不常见

所以从现在开始,我大部分时间只需要处理MyGameCore项目,所做的更改对MyGameFree和MyGamePay项目都有中间效果,而无需合并分支


这将为我节省大量时间,我将从第一行代码开始在我的后续项目中使用它。

建议不错,但在测试之前需要做一些工作。我将在本周尝试一下,然后带着结果回来。非常感谢。当然没问题,是的,我知道它的粗糙度,但正如我所知道的