Как эхо в Maven без плагина Antrun?

Как я могу печатать на консоли во время выполнения команды mvn (в фазе/цели), но не используя плагин Maven Antrun?

Почему я отвергаю решения Antrun:

  • Накладные расходы в коде для печати одного сообщения являются массовыми.
  • Выход не формируется как выход 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] ------------------------------------------------------------------------

Я уверен, что здесь что-то не хватает, поскольку я не могу первыми поднять это требование. Спасибо за любой умный намек.

Ответ 2

Вы должны попробовать плагин 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. BTW: Если у вас есть дополнительные запросы/улучшения, просто напишите в проблеме.

Ответ 3

Вы можете использовать Groovy Maven Plugin для этого.

<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!

Ответ 4

Вы можете использовать Björn Ekryd Плагин Echo Maven, который опубликован в Maven Central.

Он имеет нормальный объем XML, необходимый для плагина Maven, выход отформатирован, как и другие строки журнала 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% покрытие кода, что довольно круто.