前言:
- 基于springboot项目
- IDEA面板Build下面的Project build和Maven compile、package、install、deploy比较
1、Build Project(Ctrl+F9)
- 编译项目,生成字节码文件;
- 生成的target中有classes、generated-sources、generated-test-sources、test-classes目录;
- 第一次点Build Project会编译整个项目包括测试类,第二次点Build Project只会编译修改的文件;(eg:删除第一次编译target中的User.class,第二次编译时不会再生成User.class,因为User.java没有修改。)
- 生成的target中没有jar包;
- generated-sources是在pom中配置maven插件,点击Maven—Plugins—archetype:create-from-project可以生成源代码的派生项目;
<!--配置资源打包方式-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.2.0</version>
</plugin>
2、Build Module(Ctrl+Shift+F9)
- 单独编译一个模块,但如果该模块中有依赖其他模块,则编译失败;
3、Recompile User.java
- 重新编译User.java,但需要鼠标选中User类;
4、Maven compile
- 编译项目,生成字节码文件;
- 生成的target中有classes、generated-sources、maven-status目录;
- 每次都是重新编译;(eg:删除第一次编译target中的Pig.class,第二次编译时会再生成Pig.class,不论Pig.java有没有修改。)
- 生成的target中没有jar包;
- maven-status目录里面有createdFiles.lst和inputFiles,里面是全路径字节码文件和全路径类文件;
5、Maven package
- 编译项目,生成jar包;
- 生成的target中有classes、generated-sources、generated-test-sources、maven-archiver、maven-status、surefire-reports、test-classes、jar文件等目录;
- 每次都是重新编译打包;(eg:删除第一次编译target中的Bird.class,第二次编译时会再生成Bird.class,不论Bird.java有没有修改。)
- 生成的target中有jar包;
6、Maven install
- 将包打到本地仓库;
7、Maven deploy
- 将包打到远程仓库;