【修真院java小课堂】clean,install,package,deploy分别代表什么含义?

大家好,我是IT修真院成都分院第12期学员,一枚正直善良的java程序员。
今天给大家分享一下,修真院官网java任务一中可能会使用到的知识点:

clean,install,package,deploy分别代表什么含义?

1.    背景介绍

要理解clean,install,package,deploy的含义,我们必须先认识maven。因为他们是maven中的命令。

Maven是什么?有什么用?怎么用?

2.    知识剖析

1.    maven是什么?

Maven是一个项目构建和项目管理工具。

2.    maven有什么用?

能够帮助使用者完成从清理,编译,测试,生成报告,打包和部署的一系列操作过程

maven标准化了项目的构建过程,有利于团队之间的协作。此外,maven可以有效的解决java项目中jar包依赖问题,解决由此带来的版本不一致等问题。maven还提供了一个免费的中央仓库,几乎可以找到任何开源类库。

3.    怎么用?

我们在开发项目的时候,不断地在进行编译、测试、打包、部署等过程,maven的生命周期就是对所有构建过程抽象与统一,生命周期包含项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成等几乎所有的过程。Maven有三套相互独立的生命周期clean,install,package,deploy 属于maven项目的生命周期中的一部分。Maven有三套相互独立的生命周期:

1.CleanLifecycle 在进行真正的构建之前进行一些清理工作。

2.DefaultLifecycle 构建的核心部分,编译,测试,打包,部署等等。

3.SiteLifecycle 生成项目报告,站点,发布站点。如下图:

【修真院java小课堂】clean,install,package,deploy分别代表什么含义?

clean    清理项目生产的临时文件,一般是模块下的target目录

install  将打包的jar/war文件复制到你的本地仓库中,供其他模块使用

package项目打包工具,会在模块下的target目录生成jarwar等文件

deploy  将打包的文件发布到远程参考,提供其他人员进行下载依赖

3.    常见问题

3.1如何增加删除一个依赖关系?

3.2出现如如下报错:

-Dmaven.multiModuleProjectDirectory systempropery is not set. Check $M2_HOME environment variable and mvn scriptmatch.[ERROR] Maven execution terminated abnormally (exit code 1)

3.3 IDEA中进行maven install报:系统资源不足的问题

3.4 IDEA使用maven慢的问题

4.    解决方案

4.1如何增加删除一个依赖关系?

解决方案:直接在pom文件中加入一个dependency节点,如果要删除依赖,把对应的dependency节点删除即可。

4.2出现如3.2的报错:

解决方案:runner下的run in backqround中加-Dmaven.multiModuleProjectDirectory=$M2_HOME

如下图:

【修真院java小课堂】clean,install,package,deploy分别代表什么含义?

4.3  IDEA中进行maven install报:系统资源不足的问题

解决方案:maven installjvm内存调的大一点,具体如下:在idea中选择File->Settings,接着将maven runnerjvm内存根据自己系统内存大小进行调大

如下图:

【修真院java小课堂】clean,install,package,deploy分别代表什么含义?

4.4  IDEA使用maven慢的问题

解决方案:

1.maven每次进行创建的时候回去网上下载artheType-catalog.xml,将artheType-catalog.xml文件下载到本体。

2.maven自带的仓库好像是国外的,访问起来比较慢,修改到国内仓库。

如下图:

【修真院java小课堂】clean,install,package,deploy分别代表什么含义?

添加了dependency之后jar包下载特别慢,这里就需要更改maven的仓库了,在IDEA的安装目录下找到./plugins/maven/lib/maven2/目录或者./plugins/maven/lib/maven3/目录,在该目录中的conf目录下有setting.xml修改该文件,在<mirrors>标签下添加如下仓库地址:

【修真院java小课堂】clean,install,package,deploy分别代表什么含义?

5.    编码实战

使用IDEA新建的maven项目

 shi【修真院java小课堂】clean,install,package,deploy分别代表什么含义?

6.    扩展思考

maven使用的命令操作

7.    参考文献

https://blog.****.net/yhj19920417/article/details/72627227

https://blog.****.net/moshenglv/article/details/52027106

****冰河winner  的博客

http://www.iteye.com/topic/973166

http://www.bubuko.com/infodetail-1415329.html

https://blog.****.net/zhuxinquan61/article/details/53725457

http://gqsunrise.iteye.com/blog/2401026

 

8.    更多讨论

maven默认的文件存放结构

/项目目录

·        pom.xml 用于maven的配置文件

   ·        /src 源代码目录

                o    /src/main 工程源代码目录

                        §  /src/main/java 工程java源代码目录

              o    /src/main/resource工程的资源目录

              o    /src/test 单元测试目录

                          §  /src/test/java

·        /target 输出目录,所有的输出物都存放在这个目录下

                o    /target/classes 编译之后的class文件