【问题标题】:Maven - share a logger for multi-module project with JavaME, JavaSE and Android modulesMaven - 与 JavaME、JavaSE 和 Android 模块共享多模块项目的记录器
【发布时间】:2012-03-26 12:20:42
【问题描述】:

简介:

我的任务是创建一个包含 JavaME 和 Android 模块的多模块项目(为此我选择了 Maven)。更具体地说:我正在为手机创建应用程序,我的老板让我用共享的公共代码制作一个项目(顺便说一句:我认为他对 JavaME 和 Android 之间的代码共享施加了太大的压力——这两个都是基于 Java 语言的)不是说他们之间共享代码很容易)。

问题:

我有三个模块:

  • common - 这是针对 JavaSE 1.1 编写的,因此不需要模拟器来测试它,JavaME 也可以使用该模块,
  • jme - 这是针对 JavaME 2 编写的,
  • android - 这是(尚未)针对 Android 编写的,

我想要三个不同的记录器,每个模块一个,它们共享通用接口,也许通用模块的记录器可以是其他两个记录器的基(类)。公共类应使用与包含它们的模块相同的记录器或第三版记录器,以便分别编译和测试该公共模块。

问题:

如何配置 Maven,以便在编译和测试不同模块时包含不同版本的记录器类?或者你有不同的建议?

更新:

现在我有自己的 JavaME 记录器,它使用 RecordStore 来存储日志,并且可以轻松地检索指定的连续范围的日志,将它们转换为 JSON、HTML 和文本,然后通过电子邮件批量发送。此外,它会定期从 RecordStore 中删除旧记录。我想保留这样的功能,即。检索和转换日志记录的简单方法。

【问题讨论】:

  • 真的不同的日志框架还是只是日志配置?
  • 我已经更新了这个问题。很抱歉没有一开始就写它:我想要简单的方法来检索日志并将它们转换为易于解析的格式,如 JSON。
  • 您是否考虑过根据特定模块使用Class.forName 来实例化该通用接口 的适当实现?当我需要与您描述的类似的东西时,这对我有用。在两个不同的模块中,我有两个不同的 com.company.project.WhateverImpl 类实例,它们都实现了通用接口,只是方式不同。像魅力一样工作

标签: java android maven logging java-me


【解决方案1】:

对于测试,您可以简单地使用适当的 src/test/resources 文件夹将日志记录系统的配置放入您的 pom 中,您可以在不同区域定义不同的日志记录系统

   +-- pom.xml
        +--- common (pom.xml)
        +--- jme (pom.xml)
        +--- android (pom.xml)

并且您可以在公共 (pom.xml) 中定义与 jme (pom.xml) 中不同的日志记录系统作为依赖项(范围:测试)。 我不确定这是否会对您有所帮助,但slf4j 已经解决了不同日志框架的问题。

【讨论】:

  • 我找不到像 slf4j-j2me 这样的东西。这样的事情存在吗?那么存储和检索日志呢?
  • 我不确定 slf4j 是否适合您的需求...您所说的存储是什么意思? (它们将被写入文件系统......或者使用附加程序,您可以将它们存储到数据库等中)。检索日志是什么意思?
  • 阅读相关更新。基本上一切都归结为这样一个事实,即日志记录应该很简单,不应该需要太多的设备资源,并且我希望在需要时将新日志发送回公司(例如,作为由日志记录的 JSON 表示组成的电子邮件),在用户请求。
  • @Wibowit 您可能对this answer to another question about J2ME logging 感兴趣。它建议 Microlog 库;如果您需要支持 CLDC 1.0,cmets 还提到了 J4me。实际上,如果您的老板建议为 CLDC 1.0 和 Android 提供诸如共享公共代码之类的东西,请考虑换一份工作 - 进行微管理,尤其是由白痴进行微管理并没有什么乐趣
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 2011-09-14
相关资源
最近更新 更多