`
qtlkw
  • 浏览: 307128 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

maven – mvn clean install – lifecycle, phase, goals

 
阅读更多
If someone is using maven , it is very common to hear , “Please execute mvn clean install”. But is it a correct way to convey the actual meaning ? Are clean and install strictly some parameters to mvn command. If yes, then what does those parameters mean ?

In today’s article I am going to explain what does mvn clean install actually means and what does it really means to maven.
maven – lifecycle, phase, goals

For any project the build process is very important and this is where maven brings the discipline; by clearly defining the  build lifecycle. It defines what it should be composed of and when it should be executed.

In maven, at the highest level there is lifecycle, each lifecycle has phases and each phases is composed of goals.

    Lifecycle : There are three pre-defined build lifecycle in maven : default, clean and site.
    Phases :   Every build lifecycle comprises of phases

For example:

    The clean lifecycle has following phases :
        pre-clean
        clean
        post-clean
    The default lifecycle has the following phases :
        validate
        compile
        test
        package
        integration-test
        verify
        install
        deploy

    Goals : The build phases itself carries out its tasks with the help of defined goals and goals attached to it. The goals represent a specific tasks. For a build phase to be executed, one or more goals need to be defined.  An example of goal is compiler:compile which is executed with compile phase if default build lifecycle.

In a nutshell, a particular lifecycle has phases and phases have goals.

With number of goals defined, does maven executes all the goals or few ? If few, how does it decides ?

For this it looks up the packaging element defined in pom.xml file. Commonly used values are jar,ear and war.  Based on the packaging element defined, maven selects goals and binds them to build phases. So for packaging jar, following goals are bound to build phases :

build phase


Goal

process-resources


resources:resources

compile


compiler:compile

process-test-resources


resources:testResources

test-compile


compiler:testCompile

test


surefire:test

package


jar:jar

install


install:install

deploy


deploy:deploy

So when we say “mvn clean install”, what we are actually saying is :

Execute the clean build lifecycle (this will execute all the phases of clean lifecycle), followed by install phase if default lifecycle.

Maven will in-turn use the packaging element to decide the goals to be executed for the given phase.
分享到:
评论

相关推荐

    Apache-maven-3.1.1

    4. **生命周期(Lifecycle)**:Maven的生命周期定义了一系列构建阶段,如编译(compile)、测试(test)、打包(package)、验证(validate)、集成测试(integration-test)、安装(install)和部署(deploy)。...

    maven权威指南高清版+mvn-examples-1.0.zip MAVEN权威指南对应示例代码

    - Maven提供了多种命令,如`mvn clean`清理构建输出,`mvn compile`编译源代码,`mvn install`安装到本地仓库,`mvn package`打包项目。 7. **构建过程** - `mvn compile`执行编译,`mvn test`运行单元测试,`mvn...

    apache-maven-3.6.3安装包

    2. **构建项目**:在项目根目录下,执行`mvn clean install`命令,Maven会执行整个生命周期,编译、测试并安装项目到本地仓库。 3. **运行应用**:对于Web应用程序,可以使用`mvn tomcat7:run`或`jetty:run`命令...

    maven工具包 maven plugins

    - **执行插件目标(goal)**:通过命令行直接调用插件的目标,如`mvn compile`或`mvn clean install`。 - **插件绑定**:可以将插件的目标绑定到生命周期的某个阶段,这样在执行相应阶段时,插件目标会自动运行。 ...

    apache-maven-3.9.0-bin.tar

    此外,Maven还提供了生命周期(Lifecycle),如`clean`、`compile`、`test`、`package`、`install`和`deploy`等,这些生命周期阶段包含了多个预定义的目标(Goals),如`mvn clean`用于清理项目,`mvn compile`用于...

    maven 3.3.9

    6. **执行构建**:使用`mvn clean install`等命令进行项目的构建、测试和部署。 ### Maven 常用命令 - `mvn clean`:清理上一次构建产生的目标文件。 - `mvn compile`:编译源代码。 - `mvn test`:运行项目中的...

    apache-maven-3.3.9安装包

    2. **构建项目**: 使用`mvn clean compile`进行编译,`mvn test`运行单元测试,`mvn install`将构建结果安装到本地仓库。 3. **打包项目**: 对于Java应用,`mvn package`命令会生成JAR或WAR文件。 4. **发布项目**...

    apache-maven-3.6.1-bin

    10. **命令行接口(CLI)**:用户可以通过命令行工具`mvn`执行Maven的各种操作,如`mvn clean install`来清理项目、编译源码并安装到本地仓库。 11. **Maven Site**:Maven可以生成项目站点文档,包括项目信息、...

    maven配置文档

    构建项目时,可以使用`mvn clean install`命令执行整个构建过程,包括清理、编译、测试、打包等步骤。 **3.3 项目对象模型(POM)** POM文件是Maven的核心配置文件,包含了项目的构建规则、依赖关系等信息。通过编辑...

    Maven入门到精通

    4. **生命周期(Lifecycle)**:Maven有一套预定义的构建生命周期,包括clean、default和site三个阶段,其中default阶段包括编译、测试、打包、验证等关键步骤。 5. **插件(Plugins)**:Maven通过插件执行各种...

    apache-maven-3.5.4

    3. **生命周期(Lifecycle)**:Maven 提供了一套预定义的构建生命周期,包括清理(clean)、编译(compile)、测试(test)、打包(package)、验证(verify)、集成测试(integration-test)、部署(install)和...

    apache-maven-3.5.0.zip

    只需在项目根目录下运行`mvn clean install`,Maven就会按照默认生命周期执行相应的构建任务,编译源码、运行测试并最终把结果打包成JAR或WAR文件。 总之,Apache Maven 3.5.0是一个功能强大且高度可配置的项目管理...

    maven笔记+教案

    4. **生命周期(Lifecycle)**:Maven有一套预定义的构建生命周期,包括清理(clean)、编译(compile)、测试(test)、打包(package)、验证(verify)、安装(install)和部署(deploy)等阶段。 5. **插件...

    maven3.3亲测可用

    4. **执行构建**:通过命令 `mvn clean install` 来执行整个生命周期,完成项目的构建。 5. **调试与优化**:如果遇到问题,可以使用 `mvn dependency:tree` 查看依赖关系,或用 `-X` 参数进行调试。 6. **发布到...

    Maven3应用入门session

    这些阶段包含了多个阶段(或称为目标,goals),如clean、install和deploy,它们定义了构建的步骤。 5. **插件(Plugins)** Maven通过插件执行构建任务,如编译、测试、打包等。插件通过goals与生命周期阶段关联...

    maven使用自己资料

    Maven 具有生命周期(Lifecycle)的概念,如编译(compile)、测试(test)、打包(package)、安装(install)和部署(deploy)。每个生命周期由多个阶段(Phase)组成,如编译阶段包含`validate`、`compile`、`...

    maven3配置文件

    开发者可以通过执行对应的生命周期阶段来完成特定任务,如`mvn clean install`会清除旧的构建产物,编译源代码,然后将结果安装到本地仓库。 7. **插件(Plugins)**与**目标(Goals)** Maven插件扩展了Maven的...

    apache-maven-3.5.0

    - 运行`mvn clean install`,Maven会按照生命周期顺序执行各个阶段,完成编译、测试、打包和安装到本地仓库的过程。 - 使用`mvn deploy`可以将最终制品发布到远程仓库。 总的来说,Apache Maven 3.5.0作为一款强大...

    apache-maven-3.3.9.rar

    执行`mvn clean compile`清理并编译项目,`mvn test`运行单元测试,`mvn package`打包项目。 5. **部署项目** `mvn deploy`命令将最终的构建产物部署到远程仓库,供其他项目使用。 总结,Apache Maven是Java开发...

    maven 2.0.9

    4. **构建项目**: 在项目根目录下运行`mvn clean compile`,Maven会清除上一次的构建结果,然后编译源代码。 5. **运行测试**: 使用`mvn test`命令执行单元测试。 6. **打包项目**: 若要生成JAR或WAR文件,可以...

Global site tag (gtag.js) - Google Analytics