如何从 Maven 执行中将 retire.js 的输出提取到文件中

How to extract output of retire.js into a file from maven execution

我在 maven pom 文件中使用 retire.js 插件。漏洞详细信息与构建输出一起列出。

我想将 retire.js 输出提取到一个单独的文件中。

能否请您提出一些仅将 retire.js 数据提取到文件中的方法。

查看 source code of retire.js Maven plugin 我们可以注意到 retirejs 的日志输出被重定向到 Maven 的流中(在 initMiniLog() 中)。而且好像没有具体的配置。

但是,通过一些调整,我们可以设置 Maven 来收集这些日志。所以我可以提出以下建议:

1) 默认情况下,Maven 使用 slf4j-simple 记录器,从 {M2_HOME}/lib.

中删除它的 jar

2) 在同一个文件夹中放置一个支持输出到文件的日志库,例如 Logback: logback-classic-*.jar and logback-core-*.jar.

3) 定义一个配置,它将所有内容输出到标准输出,并且只将您要查找的内容输出到文件中。 logback.xml 应放入 {M2_HOME}/conf/logging。例如,我使用以下草稿配置将 maven-compiler-plugin 的输出提取到当前文件夹中的 maven.log 中:

<configuration>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>./maven.log</file>
    <encoder>
      <pattern>%message%n</pattern>
    </encoder>
  </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%level - %message%n</pattern>
    </encoder>
  </appender>

  <!-- 
     specify the package of retirejs: com.h3xstream.retirejs
  -->
  <logger name="org.apache.maven.plugin.compiler" level="TRACE">
    <appender-ref ref="FILE" />
  </logger>

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>

</configuration>

4) 执行你的构建命令...