Java:如何在多个应用程序之间共享通用应用程序/UI 代码

Posted

技术标签:

【中文标题】Java:如何在多个应用程序之间共享通用应用程序/UI 代码【英文标题】:Java: How to share common application / UI code among several applications 【发布时间】:2011-09-07 16:17:35 【问题描述】:

我有几个主要基于资源不同的应用程序。截至目前,我正在将代码复制到每个应用程序中。这可能是有问题的。一个例子,修复了一个错误,而忘记更新其他的。

我认为创建 JAR 不适合这种情况,因为这些是特定于应用程序的 UI 类(实际上是特定于 android 的活动类),包括实际的应用程序启动代码。

也许可以将这些源文件包含到几个包中,但是我遇到的问题是每个文件在第一行指定了一个特定的包名。

大部分代码与 UI 和 Activity 处理有关。 (实际的通用代码已经在库中)。 here 发布了一个类似的问题。 这种情况有什么优雅的解决方案吗?

【问题讨论】:

【参考方案1】:

罐子绝对适合这种情况。您应该将应用程序拆分为多个层,将应用程序特定的类与共享代码分开。

【讨论】:

我应该确认所有实用程序代码都已在库中。问题在于所有特定于 UI 的(android 活动),尤其是主要的启动活动。这些是大部分代码,在 android 清单中被引用。我会考虑将这些添加到一个 jar 中,并找到一种方法来保持清单的快乐。【参考方案2】:

我通过使用 Android 库项目解决了这个问题。 (不确定细节,也许它们最终是罐子)查看细节here,特别是“设置图书馆项目”部分。 我基本上把我所有的活动类(除了启动类)都放到了库中。

对于真正的非 UI 绑定代码,JAR,似乎是要走的路。

【讨论】:

【参考方案3】:

我同意 artbristol。

我也推荐使用 Maven 并且:

将公共 jar 发布到公司 Maven 存储库 声明对这些 jar 工件的特定版本的依赖关系

这样,如果您进行一些不兼容的更改,您不会破坏应用程序。

【讨论】:

以上是关于Java:如何在多个应用程序之间共享通用应用程序/UI 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在多个 OCUnit 测试用例之间共享代码?

在应用程序之间共享设置

JAVA :- 在 Linux 中不工作的多个 Java 应用程序之间的文件共享和锁定

如何在多个 Symfony 实例之间共享应用程序缓存(共享缓存池)?

Webpack:Webworker 和 Web 代码之间共享代码的通用块?

在共享一个通用插件的两个 grails 应用程序之间共享配置