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

5、生命周期和插件介绍(maven笔记)_第1张图片
1

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


    
        
            org.apache.maven.plugins
            maven-source-plugin
            3.0.0
        
    
  

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


    
        
            
                org.apache.maven.plugins
                maven-source-plugin
                3.0.0
                
                    
                        package
                        jar-no-fork
                    
                
            
        
    
  

注意:标签中配置插件的声明周期,此处我们配置的是在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插件

          
            org.codehaus.mojo
                sql-maven-plugin
                1.5
                
                    
                        mysql
                        mysql-connector-java
                        5.1.38
                    
                
                
                    com.mysql.jdbc.Driver
                    jdbc:mysql://localhost:3305
                root
                walp1314
                
                        create database IF NOT EXISTS maven_test
                
                
                
                    
                        package
                        execute
                    
                
        

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

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

你可能感兴趣的:(5、生命周期和插件介绍(maven笔记))