问题 如何在没有Antrun插件的情况下在Maven中回显?


如何在执行mvn命令(在阶段/目标中)但不使用Maven Antrun插件时打印到控制台?

为什么我拒绝Antrun解决方案:

  • 打印单个消息的代码开销是massiv。
  • 输出没有形成像maven输出
  • 我无法在消息中附加严重性(例如DEBUG,INFO,ERROR等)

目前Ant-echo看起来像这样(参见“hello world”行):

[INFO] --- maven-antrun-plugin:1.7:run (default) @ ejpd-alertmanager-ear ---
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks
main:
 [echo] hello world
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

但是,我希望它看起来像这样(见“hello world”行)。

[INFO] --- maven-antrun-plugin:1.7:run (default) @ ejpd-alertmanager-ear ---
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks
[INFO] hello world
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

我很肯定,我在这里缺少一些东西,因为我不能成为第一个提出这种需求的人。谢谢你的任何聪明提示。


9384
2018-04-02 12:17


起源

你究竟想要打印出来的是什么?输出将包含正在执行的阶段/目标的详细信息。 - DaveRlz
嗨Dave,1st)执行目标时的属性值(我想检查变量是否在运行时正确设置。例如操作系统,运行maven-resources-plugin时的连接属性等)。 2)当执行打击复制或移动任务(或再次执行maven-resources-plugin)时,我希望以maven格式化的方式回显。说,从[INFO]开始。例如[INFO]已成功将文件x复制到路径y。我有道理吗? - feder


答案:


我自己没试过,但这里有一个插件可能会有所帮助:

http://code.google.com/p/maven-echo-plugin/


1
2018-04-02 12:52



不幸的是,这个插件不在Maven Central中。 - khmarbaise
快速检查谷歌显示它可以从此链接的mvn存储库中获得: mvnrepository.com/artifact/com.soebes.maven.plugins/...  - 好吧,它与我最初的回答并不完全相同,但它看起来做同样的任务。 - DaveRlz
可能这就是我们现在可以得到的全部。谢谢。 - feder
我写过来自code.google.com的插件在Maven中心不可用,其中给定的插件(groupId:com.soebes.maven.plugins)可从maven central获得。 - khmarbaise
试试Maven Central提供的'echo-maven-plugin': code.google.com/p/echo-maven-plugin - timomeinen


你应该尝试一下 Maven Echo插件

<plugin>
  <groupId>com.soebes.maven.plugins</groupId>
  <artifactId>maven-echo-plugin</artifactId>
  <version>0.1</version>
  <executions>
    <execution>
      <phase>initialize</phase>
      <goals>
        <goal>echo</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <echos>
      <echo>This is the Text which will be printed out.</echo>
    </echos>
  </configuration>
</plugin>

或者进一步深入研究 插件的集成测试。

可通过Maven Central获得。顺便说一句:如果你有进一步的请求/改进只是文件 在一个问题


5
2018-04-02 13:10





您可以使用 Groovy Maven插件 为了这。

<plugin>                                                         
    <groupId>org.codehaus.gmaven</groupId>                       
    <artifactId>groovy-maven-plugin</artifactId>                 
    <version>2.0</version>                                       
    <executions>                                                 
        <execution>                                              
            <phase>validate</phase>                              
            <goals>                                              
                <goal>execute</goal>                             
            </goals>                                             
            <configuration>                                      
                <source>                                         
                    log.info('Test message: {}', 'Hello, World!')
                </source>                                        
            </configuration>                                     
        </execution>                                             
    </executions>                                                
</plugin>                                                        

上面的配置将产生以下输出:

[INFO] Test message: Hello, World!

3
2017-11-18 11:48





您可以使用 BjörnEkrydEcho Maven插件,发表于 Maven Central

它具有Maven插件所需的正常XML量,输出的格式与其他Maven日志行的格式相同,您可以为消息指定严重性级别(默认为INFO)。

<plugin>
    <groupId>com.github.ekryd.echo-maven-plugin</groupId>
    <artifactId>echo-maven-plugin</artifactId>
    <version>1.2.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>echo</goal>
            </goals>
            <configuration>
                <message>war has changed</message>
                <level>INFO</level>
            </configuration>
        </execution>
    </executions>
</plugin>

[INFO] --- maven-war-plugin:2.4:war (default-war) @ mymodule ---
[INFO] Packaging webapp
[INFO] Processing war project
[INFO]
[INFO] --- echo-maven-plugin:1.2.0:echo (default) @ mymodule ---
[INFO] war has changed
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

此外,这个插件有 95%的代码覆盖率,这很酷。


1
2018-03-03 05:10