Maven构建可以清除并验证阶段

时间:2018-02-10 20:08:55

标签: java maven

我正在使用IntelliJ IDE。我的项目是maven project。困扰我的是,例如选择"安装"从Maven工具栏中选择并点击"运行Maven Build" enter image description here

clean阶段未执行:

"C:\Program Files\Java\jdk-9.0.1\bin\java" -Dmaven.multiModuleProjectDirectory=A:\custom_software_projects\IdeaProjects\power_management "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\plugins\maven\lib\maven3\bin\m2.conf" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\lib\idea_rt.jar=53577:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar" org.codehaus.classworlds.Launcher -Didea.version=2017.3.2 install
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building power_server 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ power_server ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 5 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ power_server ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ power_server ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory A:\custom_software_projects\IdeaProjects\power_management\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ power_server ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ power_server ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ power_server ---
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (default) @ power_server ---
[INFO] Building jar: A:\custom_software_projects\IdeaProjects\power_management\target\power_server-1.0-SNAPSHOT-jar-with-dependencies.jar
[INFO] 
[INFO] --- maven-dependency-plugin:3.0.2:unpack-dependencies (unpack-sigar) @ power_server ---
[INFO] log4j:log4j:jar:1.2.17 already exists in destination.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ power_server ---
[INFO] Installing A:\custom_software_projects\IdeaProjects\power_management\target\power_server-1.0-SNAPSHOT.jar to C:\Users\ggeorgiev\.m2\repository\Power_Management_Server\power_server\1.0-SNAPSHOT\power_server-1.0-SNAPSHOT.jar
[INFO] Installing A:\custom_software_projects\IdeaProjects\power_management\pom.xml to C:\Users\ggeorgiev\.m2\repository\Power_Management_Server\power_server\1.0-SNAPSHOT\power_server-1.0-SNAPSHOT.pom
[INFO] Installing A:\custom_software_projects\IdeaProjects\power_management\target\power_server-1.0-SNAPSHOT-jar-with-dependencies.jar to C:\Users\ggeorgiev\.m2\repository\Power_Management_Server\power_server\1.0-SNAPSHOT\power_server-1.0-SNAPSHOT-jar-with-dependencies.jar
[INFO] 
[INFO] --- maven-antrun-plugin:1.4:run (Copying jar-with-dependecnies and fixing LF in .sh scripts) @ power_server ---
project.artifactId
[INFO] Executing tasks
     [copy] Copying 1 file to A:\custom_programs\power_server
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.291 s
[INFO] Finished at: 2018-02-10T21:42:17+02:00
[INFO] Final Memory: 17M/56M
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

因此,正如您所看到的,第一步是maven-resources-plugin:2.6:resources。从我对maven docs的理解是,当我们指定一个阶段时,所有先前阶段都会执行到所选阶段。每个maven doc:

This command executes each default life cycle phase in order (validate, compile, package, etc.), before executing install. You only need to call the last build phase to be executed, in this case, install

为什么要跳过cleanvalidate阶段?

修改

我在clean部分也有Run Configuration阶段,但结果是一样的: enter image description here

2 个答案:

答案 0 :(得分:6)

Maven有3种不同的内置lifecycles

  

有三个内置构建生命周期:默认清洁网站

install是默认生命周期的一部分,执行clean时没有理由install执行。

对于validate,它没有内置绑定,因为您可以看到here,这意味着它不会进入execute

  

此外,构建阶段也可以有零个或多个绑定目标。如果构建阶段没有绑定目标,则不会执行该构建阶段。

答案 1 :(得分:2)

默认生命周期中不包含clean。查看docs

引用:

  

例如,默认生命周期包含以下阶段   (有关生命周期阶段的完整列表,请参阅生命周期   参考):

     
      
  • 验证 - 验证项目是否正确以及所有必要的   信息可用
  •   
  • 编译 - 编译的源代码   项目
  •   
  • test - 使用合适的单元测试编译的源代码   测试框架。这些测试不应要求打包代码   
  •   
  • package - 获取已编译的代码并将其打包到其中   可分发的格式,例如JAR。
  •   
  • 验证 - 运行任何检查   确保质量标准得到满足的集成测试结果
  •   
  • 安装 - 将软件包安装到本地存储库中,以用作   在本地其他项目中的依赖
  •   
  • 部署 - 在构建中完成   环境,将最终包复制到远程存储库   与其他开发人员和项目共享。
  •   

此外,validate阶段与打包.jar文件的默认生命周期无关。

检查文档底部的JAR文件的默认生命周期绑定