gpt4 book ai didi

java - mvn - 将 log4j.properties 注入(inject) Maven 插件

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:55 24 4
gpt4 key购买 nike

我有两个项目:

  • 我制作了一个 Maven MOJO company: Generation-plugin 来生成一些代码。 Maven 阶段是生成源
  • 在客户端项目中,我按如下方式使用该插件:

        <plugin>
    <groupId>company</groupId>
    <artifactId>generation-plugin</artifactId>
    <version>1.0-SNAPSHOT</version>
    <executions>
    <execution>
    <goals>
    <goal>generate</goal>
    </goals>
    </execution>
    </executions>
    </plugin>

生成项目和客户端项目在src/main/resources中都有一个log4j.properties

问题是在客户端项目中生成源的过程中,使用了生成项目的log4j.properties

是否可以将客户端项目的log4j.properties注入(inject)到生成项目中,或者换句话说,用客户端项目的log4j.properties替换生成项目的log4j.properties

更新

当生成项目的log4j.properties移动到src/test/resources或简单删除时,客户端项目在构建过程中会收到以下警告:

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

不知何故,我必须能够告诉生成项目使用客户端项目中的log4.properties

最佳答案

这里没有足够的信息来解决这个问题,但是这个问题隐含地要求提供一些关于 Maven 和 log4j 如何工作的信息。

  1. Maven 在执行时为每个插件创建一个单独的类加载器。该插件包含插件本身声明的依赖项(运行时+编译)。插件类加载器合并项目的目标/类;尽管一些需要检查类(用于代码修改)的插件在其中进行探索会遇到额外的麻烦。
  2. Log4j 在某些类加载器中查找 log4j.properties。 log4j 可能没有使用正确的类加载器,具体取决于 log4j 和 Maven 的版本;您可以尝试将线程上下文类加载器设置为加载 mojo 的类加载器,看看会发生什么。
  3. 理论上,您可以将 log4j 桥接到 Maven mojo 日志;我找不到这方面的示例,因此您可能需要自己从 log4j 文档中编写代码。

关于java - mvn - 将 log4j.properties 注入(inject) Maven 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32559963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com