美文网首页
maven构建流程使用插件

maven构建流程使用插件

作者: jinjin1009 | 来源:发表于2021-10-20 09:37 被阅读0次

    前面介绍了maven的lifecycle、phase和goal,使用maven构建项目就是执行lifecycle,直至执行到指定的phase为止,每个phase会执行自己默认的一个或者多个goal,goal是最小任务单元。
    我们以compile这个phase为例,如果执行:
    mvn compile
    Maven将执行compile这个phase,这个phase会调用compiler插件执行关联的compiler:compile这个goal。
    实际上,执行每个phase,都是通过某个插件(plugin)来执行的,Maven本身其实并不知道如何执行compile,它只是负责找到对应的compiler插件,然后执行默认的compiler:compile这个goal来完成编译。
    所以,使用Maven,实际上就是配置好需要使用的插件,然后通过phase调用它们。

    插件名称 对应执行的phase
    clean clean
    compiler compile
    surefire test
    jar package

    如果标准插件无法满足需求,我们还可以使用自定义插件。使用自定义插件的时候,需要声明。例如,使用maven-shade-plugin可以创建一个可执行的jar,要使用这个插件,需要在pom.xml中声明它

    <project>
        ...
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                                    <version>3.2.1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                ...
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>
    

    自定义插件往往需要一些配置,例如,maven-shade-plugin需要指定Java程序的入口,它的配置是:

    <configuration>
        <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <mainClass>com.itranswarp.learnjava.Main</mainClass>
            </transformer>
        </transformers>
    </configuration>
    

    注意,Maven自带的标准插件例如compiler是无需声明的,只有引入其它的插件才需要声明。
    下面列举了一些常用的插件:
    maven-shade-plugin:打包所有依赖包并生成可执行jar;
    cobertura-maven-plugin:生成单元测试覆盖率报告;
    findbugs-maven-plugin:对Java源码进行静态分析以找出潜在问题。

    相关文章

      网友评论

          本文标题:maven构建流程使用插件

          本文链接:https://www.haomeiwen.com/subject/xgxtaltx.html