【问题标题】:Maven Plugin LoggingMaven 插件日志
【发布时间】:2014-01-20 22:46:08
【问题描述】:

我实现了自己的 Maven 插件 mojo,其中使用了 log4j + slf4j。在插件项目中,我包含了正确的 jar,并且可以从代码中看到正确的语句记录。

现在我想在另一个客户端项目中使用这个新的 maven 插件,但无法使其正常工作。

在插件本身中,我在 src/main/resources 下包含了一个 log4j.properties,如上所述,它可以正常工作。但是,当我尝试将插件包含在另一个客户端项目中时,不会创建日志文件。

问题是我还必须尝试或做什么才能使其正常工作?谢谢。

【问题讨论】:

  • “在另一个客户端项目中”,这是一个单独的项目还是使用 Maven 嵌入器?该插件不能独立工作,它需要 DI 框架。另请阅读maven.apache.org/maven-logging.html 了解其他选项。
  • 谢谢罗伯特,客户端项目只是另一个maven项目,它有自己的pom文件,需要使用自定义插件。此外,我不希望更改 Maven 的默认日志配置和设置,但我确实希望我的自定义插件拥有自己的日志配置和设置,因此不确定您建议的链接在这种情况下对我有帮助。
  • 我在使用 Maven 3.5 时遇到了同样的问题,即在插件中使用 getLog 记录的语句在另一个项目中使用该插件时不会显示。你最后做了什么?

标签: maven logging log4j slf4j mojo


【解决方案1】:

您不得将log4j.properties 放入src/main/resources

Log4j 将仅在类路径中查找单个 log4j.properties 资源,因此根据类路径中元素的顺序,您的代码或其他项目将胜出。

您可以将此资源放在测试类路径中,以便您的测试正常工作。

对于最终应用程序,您必须从其他地方加载文件或创建一种“应用程序”Maven 项目,其中仅包含依赖项、main() 的代码和配置文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多