- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
起初我不得不说我的英语不是很好,如果我能很好地解释我的意思,我很抱歉:)
我有一个项目需要复制n次;每个新项目都必须具有相同的源代码,但资源不同(例如:图像、html 文件、声音、pdf 等)和不同的类/包名称。
我的项目不是标准的java,而是android + phonegap。我有一个创建空 phonegap 项目的 eclipse 插件...也许有办法修改此插件以创建我的标准项目?
这可能吗?最好的是也有一个系统来将源代码更改从主项目提交给子项目,但这不是强制性的。
再次抱歉我的英语。
编辑:
对不起,如果我再次编辑这个问题,但我真的找不到解决我的问题的方法。
我想把它与一个例子结合起来,也许我可以解释我需要什么。
假设您已经使用 eclipse 和 phonegap 为一支足球队(例如巴塞罗那)开发了 android 应用程序。
应用主要是html + jquerymobile,但是你修改了activity,android manifest,添加了一些phonegap插件,一些媒体资源等。
现在您必须为更多团队复制此应用程序,很多团队。对于每个人,您必须创建一个新的 phonegap 项目、修改每个文件、添加插件、添加 Assets ……这些任务不可能没有错误。
但最大的问题是:如果您的代码只有一点点更新,您如何在 10/20/50/100/1000 个项目中复制它?
为了更具体,我还在帖子中添加了 android、phonegap 和 cordova 标签。
再次为我的英语感到抱歉。
编辑 N°2
我刚刚玩了一个多星期的 maven android 插件,但没有成功。我需要的是集中式代码,我可以在其中切换应用程序和程序包名称、图标以及少量配置文件。
Android 库不是解决方案,因为它无法导出 Assets 文件。
我开始悬赏这个问题寻找详细的答案......请帮助:(
最佳答案
从维护的角度来看,我不会考虑基于相同的代码库复制 1000 个项目。我会使用单个项目管理特定于客户的资源,并在项目构建阶段交换所需的资源。换句话说,1 个项目构建 1000 个 apk,而不是 1000 个项目构建 1000 个 apk。
根据您在问题中提供的详细信息,解决这种使用场景(从单一源库构建多个应用程序)的正确方向(据我所知)是采用外部构建工具,如 Ant 或Maven 主导构建过程(两者都提供了在整个构建生命周期中对每个步骤进行精细控制的能力,即编译、dex、打包等),并且如果需要,可能会为批量构建编写 shell 脚本。
我不喜欢 PhoneGap,但可以快速浏览一下它的 Get Started Guide ,根据我的理解,它只是Android SDK之上的另一个编程层堆栈,提供主要使用网络编程语言(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 个 apk,请编写 shell 脚本。
Android Maven 插件提供了许多配置,让您可以在每个阶段/目标精细控制构建过程。查看Project Documentation了解全部详情。
关于android - Eclipse:来自单一来源的多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143352/
我正在用 robocopy 编写一个 powershell 脚本来从列表中复制“完整的”unc/文件名路径。我遇到的问题是 robocopy 似乎在我的源路径末尾添加了一个 \。 我有一个 C:\te
我发现守护程序通过这些代码创建了一个容器 // NewBaseContainer creates a new container with its // basic configuration. fu
是否有所有潜在 map 源的列表?在示例页面上,可以浏览四种类型的 map 。外面还有什么? http://tombatossals.github.io/angular-leaflet-directi
是否有所有潜在 map 源的列表?在示例页面上,可以浏览四种类型的 map 。外面还有什么? http://tombatossals.github.io/angular-leaflet-directi
我们的网站比较多,第一次使用ElasticSearch不知道应该怎么配置ES: 我们想使用 ES 作为这些网站的唯一搜索引擎,我们是否应该为每个网站设置单独的 ES 实例? (我想这可能比一个 ES
我需要一些关于我对 UNI 项目的想法的建议。 我想知道是否可以将一个音频文件从不同的音频源分成不同的“流”。例如,将音频文件拆分为:引擎噪音、火车噪音、人声、并非始终存在的不同声音等。 我不一定需要
我想设置“公共(public)彩票”,每个人都可以看到选择是随机和公平的。如果我只需要一点,我会使用例如当天收盘道琼斯指数的 LSB。问题是,我需要 32 位。我需要一个来源: 每日可用 全世界都可以
来自 pickle 的 python 文档: Warning The pickle module is not secure. Only unpickle data you trust. 什么是 pi
我试图安排一个 liquidsoap 流媒体源在未来的特定日期和时间播放。我相信这可以使用 Liquidsoap switch 命令来完成,但我无法理解此处描述的文档:http://liquidsoa
对于Shiny应用程序,我希望能够播放在 session 本身期间生成的音频文件。 如果它是我要上传的音频文件,我将使用 tags$audio(src = "www/name.wav", ty
我想更改我的 OpenGL 来源。图片会说明: 现在是这样的: 这就是我想要的: 当前代码 gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL
我正在尝试让 Stripe 运行起来,我几乎已经完成了,但有一件令人困惑的事情。 source: 'tok_visa' 部分。看起来它可以是“tok_mastercard”、“bank_account
我已经下载了 primefaces 源代码,看看是否可以从中学习。该 jar 包含一堆使用编写器来处理渲染等的 java 类。我期待找到一些 .xhtml 文件 ... and etc etc
如果我查看页面源代码,我会看到 styling += 'ul#topnav a.tabHeader5'; styling += '{'
我正在尝试根据显示器的大小更改背景图像。它不在服务器上运行。您可以在 https://github.com/Umpalompa/Umpalompa.github.io 找到我的所有代码. 我尝试同时使
从here的最底部开始.有一个 URL 生成器,我可以使用引荐来源网址在 Google Play 上生成指向我的应用程序的链接。我如何从谷歌分析中提取该 Activity 来源?我一直在谷歌上搜索,但
我用 Google Weather API 制作了一个插件,目前我正在从 Google 的 API 中提取图像。对于晴天,我正在拉 http://www.google.com//ig/images/w
是否可以通过环境变量为 @CrossOrigin 注释指定来源?我想这样做,以便我可以将相同的代码库用于 uat/staging/production。我希望我的 uat/staging 环境可以通过
我需要等待我的 JavaScript 中的文档准备就绪,才能在正文底部插入一个 div。 我想: 使此 JavaScript 文件尽可能小(如果可能,将其编译到 < 1kb) 在闭包中内联提供文档就绪
我正在开发电子邮件服务并想连接到谷歌帐户,是否可以将我的本地主机用作授权的 JavaScript 来源? 最佳答案 第 1 步:启用 Google+ API http://localhost:4567
我是一名优秀的程序员,十分优秀!