我有一个项目,我需要复制n次;每个新项目必须具有相同的源代码,但不同的资源(例如:图像,html文件,声音,pdf等)和不同的类/包名称.
我的项目不是标准的java,而是android phonegap.
我有一个eclipse插件,创建一个空的phonegap项目…也许有一种方法来修改这个插件来创建我的标准项目?
可能吗?最好的方法是还有一个系统将主要项目的源变更提交给孩子,但这不是强制性的.
对不起我的英语.
编辑:
对不起,如果我再次编辑这个问题,但实际上我找不到解决我的问题的方法.
我想将它与一个例子集成,也许我可以解释我需要什么.
想象一下,你已经为eclipse和phonegap开发了android应用程序,对于足球队来说,例如巴塞罗那.
该应用程序主要是在html jquerymobile,但你已经修改了活动,android清单,添加了一些phonegap插件,一些媒体资源等.
现在你必须为更多的团队,很多团队复制这个应用程序.对于每个人,您必须创建一个新的phonegap项目,修改每个文件,添加插件,添加资产……这些任务不能没有错误.
但是最大的问题是:如果您的代码中只有一点点更新,那么如何在10/20/50/100/1000项目中复制它?
我已经添加了android,phonegap和cordova标签,以便更具体.
对不起我的英语.
编辑N°2
我刚刚玩了maven android插件一个多星期了,但没有成功.
我需要的是集中代码,我可以在其中切换应用程序和包名,图标以及一些配置文件.
Android libs不是解决方案,因为它无法导出资产文件.
我开始为这个问题寻找详细答案的赏金…请帮助:(
解决方法
基于您在问题中给出的详细信息,正确的方向(据我所知)来解决这种使用场景(从单一源代码库构建多个应用程序)是采用外部构建工具,如Ant或Maven支配构建进程(两者都提供了在完整的构建生命周期中对每一步(即编译,dex,包等)进行精细控制的能力),并且如果需要,可以编写用于批量构建的shell脚本.
我不是PhoneGap的乐趣,但是根据我的理解快速浏览它的@L_301_2@,它只是Android SDK上的另一个编程层堆栈,通过主要使用Web编程语言提供编写移动应用程序的能力(HTML,CSS,Javascript),应用程序仍保留原始项目框架,因此我不会期望编写Ant / Maven脚本来构建PhoneGap应用程序.
一旦您成功构建了Maven的PhoneGap应用程序.您可以开始研究如何解决您的情况,我之前在StackOverflow中看到了类似的情况,请查看this thread和this thread进行一些案例研究.您可以启动概念验证项目进行可行性研究.
我发布了一些示例代码,展示了Maven如何实现这一点,见下文.
示例项目目录结构:
myApp/ src/ res-barcelona/ assets-barcelona/ res-realmadrid/ assets-realmadrid/ ... ... project.properties AndroidManifest.xml pom.xml
示例pom.xml文件:
<profiles> <profile> <id>barcelona</id> <properties> <app.package.name>com.company.app.barcelona</app.package.name> <app.res.dir>${project.basedir}/res-barcelona</app.res.dir> <app.assets.dir>${project.basedir}/assets-barcelona</app.assets.dir> </properties> </profile> <profile> <id>realmadrid</id> <properties> <app.package.name>com.company.app.realmadrid</app.package.name> <app.res.dir>${project.basedir}/res-realmadrid</app.res.dir> <app.assets.dir>${project.basedir}/assets-realmadrid</app.assets.dir> </properties> </profile> ... ... </profiles> .... <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.1.1</version> <extensions>true</extensions> <configuration> <sdk> <platform>13</platform> </sdk> <undeployBeforeDeploy>true</undeployBeforeDeploy> <renameManifestPackage>${app.package.name}</renameManifestPackage> <resourceDirectory>${app.res.dir}</resourceDirectory> <assetsDirectory>${app.assets.dir}</assetsDirectory> </configuration> </plugin> ... ... </plugins>
要构建app-barcelona.apk,请运行mvn clean install -Pbarcelona.
要构建app-realmadrid.apk,请运行mvn clean install -Prealmadrid.
要构建其他1000个apks,请编写shell脚本.
Android Maven插件提供了许多配置,让您可以在每个阶段/目标中精细控制构建过程.查看Project Documentation了解详细信息.