5、生命周期和插件介绍(maven笔记)

一、生命周期

maven有三套生命周期:分别为cleancompilesite。三个生命周期不会互相关联,而每个生命周期中又分成很多个步骤。这里主要介绍前两个。

1.1 clean

clean这个生命周期分成三个阶段:

  • pre-clean 执行一些需要在clean之前完成的工作

  • clean 移除所有上一次构建生成的文件

  • post-clean 执行一些需要在clean之后立刻完成的工作

1.2 compile

  • validate验证
  • generate-sources
  • process-sources
  • generate-resources
  • process-resources 复制并处理资源文件,至目标目录,准备打包。
  • compile编译项目的源代码。
  • process-classes
  • generate-test-sources
  • process-test-sources
  • generate-test-resources
  • process-test-resources复制并处理资源文件,至目标测试目录。
  • test-compile 编译测试源代码。
  • process-test-classes
  • test使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
  • prepare-package
  • package接受编译好的代码,打包成可发布的格式,如 JAR 。
  • pre-integration-test
  • integration-test
  • post-integration-test
  • verify
  • install 将包安装至本地仓库,以让其它项目依赖。
  • deploy将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

说明:这里只是一个简单介绍,在后面在详细说明。

二、插件

插件是maven的核心,所有执行的操作都是基于插件来完成的。为了让一个插件中可以实现众多类似的功能,maven为插件设定了目标,一个插件中可能有多个目标。

2.1 使用

(1)打包源代码插件
我们可以在http://maven.apache.org/plugins/index.html中找到各类的插件,比如我们想将源代码打包(默认是不打包源代码的)需要使用source插件,点开source之后在最上面我们可以看到此插件有多个goal

1

我们向对源代码打包是使用第四个插件,在最下面的例子中我们可以看到配置信息,比如我们在user-core中进行配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.0</version>
        </plugin>
    </plugins>
  </build>

此配置信息放在配置文件的最后。然后使用命令source:jar-no-fork就可以将源代码打包。当然我们也可以在user-parent中进行配置管理所有的插件

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals><goal>jar-no-fork</goal></goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
  </build>

注意:<executions>标签中配置插件的声明周期,此处我们配置的是在package之后就打包源代码。

(2)help插件
使用的时候一般不需要配置,直接使用命令比如:
mvn help:describe -DgroupId=org.somewhere -DartifactId=some-plugin -Dversion=0.0.0
就可以运行看到某个插件的相关信息,但是这样很麻烦。
还有其他方式:
mvn help:describe -Dplugin=org.somewhere:some-plugin:0.0.0
注意:上面两个命令都是在命令行的使用,在MyEclipse中不需要前面的mvn
当然最好的方式还是使用前缀,比如compile插件的前缀就是compiler
help:describe –Dplugin=compiler
但是这种方式不是每个插件都能成功。

(3)sql插件

          <plugin>
            <groupId>org.codehaus.mojo</groupId>
                <artifactId>sql-maven-plugin</artifactId>
                <version>1.5</version>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.38</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <driver>com.mysql.jdbc.Driver</driver>
                    <url>jdbc:mysql://localhost:3305</url>
                <username>root</username>
                <password>walp1314</password>
                <sqlCommand>
                        create database IF NOT EXISTS maven_test
                </sqlCommand>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals><goal>execute</goal></goals>
                    </execution>
                </executions>
        </plugin>

注意:如果出错,很可能是插件的版本不对。此插件依赖jdbc,所以我们需要给其配置相关的jdbc依赖。依赖中的最后一项是执行的sql语句。最后是绑定其声明周期在package上。

最后:这里只是做一个简单的说明,在后面再详细说明。后面还有使用maven管理发布web项目。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容