如何在Maven中显示消息

Dav*_*vid 57 java maven-2

如何在Maven中显示消息?在蚂蚁中,我们确实有"回声"来显示消息,但是在maven中,我该怎么做?

mat*_*t b 50

你可以使用antrun插件:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <echo>Hello world!</echo>
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但有一个问题是你必须选择构建生命周期的哪个阶段来绑定它(我的例子有插件绑定generate-resources).与Ant不同,您不是自己控制生命周期,而只是将插件绑定到预定义生命周期中的某些点.根据您实际尝试的内容,这可能对您的用例有意义,也可能没有意义.


Unc*_*ter 12

你可以使用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>                                                        
Run Code Online (Sandbox Code Playgroud)

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

[INFO] Test message: Hello, World!
Run Code Online (Sandbox Code Playgroud)


Ben*_*son 11

您可以使用BjörnEkrydEcho Maven插件,该插件Maven Central发布:

<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>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
[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] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

此外,这个插件有95%的代码覆盖率,这是非常酷的.

  • 我运行了`mvn package`,但你可以将它绑定到你喜欢的任何[阶段](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference). (2认同)

小智 6

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <echo>[your message]:${Urkey}</echo>
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)