Maven项目构建(一):什么是Maven?
作者:杨景文(javen666.com)
Maven是一个项目构建和项目管理的工具。
视频教程:https://www.bilibili.com/video/BV1z5411g7G4
一、项目构建是什么
项目构建可以理解为一个项目从无到有的一系列操作过程。比如写一个简单的Java程序的过程如下:
1、创建后缀为.java的源文件,然后再文件中写代码。
2、编译.java文件为字节码文件(.class文件)。
3、执行字节码文件输出结果。
以上就是一个简单Java程序的构建过程。里面要用到Jdk中的java和javac等命令进行编译和执行。
如果一个项目还需要引用第三方的jar文件,那么上面的架构过程将会变得复杂。如果我们还希望将项目打包部署,使用到的命令又会多很多,如下:
jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名
以上是一个Java打包的指令。看着是不是很头疼,有种感觉:“这是什么鬼~,这么复杂!”。那么,有没有简单的方式呢?有,Maven就可以简化上面的构建过程。比如上面的所有步骤,Maven仅仅只需要一条指令就可以完成:
mvn install //就是这么简单
二、IDE和Maven
导读:看了上面的叙述之后,有同学可能会说“我平时也不会使用Java命令来构建项目啊,直接使用IDE(比如eclipse)就行了啊”。那么为什么还要使用Maven呢,难道是重复的轮子?
IDE确实能帮助我们简化项目从创建、编译、测试、打包、部署的全过程。但是有一个非常严重的问题,比如teamA习惯使用intellij idea,teamB习惯使用eclipse,有一个项目本身是由teamA负责开发,后面因为某些原因,换成teamB开发。首先,intellij idea的项目是不能直接在eclipse中使用的,这样要么teamB学习intellij idea,要么将idea项目转成eclipse格式。不管是哪种方式,都非常耗时,还容易出错,都是不可取的~ 那有没有办法能解决这个问题呢?有,Maven就可以解决这个问题。
Eclipse和Intellij idea都有Maven的插件,支持使用Maven构建项目。如果团队使用Maven构建项目,那么不论是否有IDE、或者不论IDE是什么,都不会出现因为换IDE导致的项目结构变化的问题。
这么说来,Maven倒是成为了一个项目构建的标准或者规范。
三、其他构建工具
其实,除了Maven之外,还有很多其他类似的构建工具,比如Ant、Gradle等。
1、Ant是比较早的Java构建工具,但是Ant没有依赖管理,需要程序员自己管理或者借助其他工具管理(就是没有Maven方便)。
2、至于Gradle,是一个基于Ant和Maven基础之上发展而来的优秀的构建工具。Gradle更简洁、处理依赖冲突的时候更智能。但是目前很多企业级Java项目仍旧是采用Maven构建的,所以作为一个Java程序员,掌握Maven的使用是必要的。不过,Google的Android项目,更多的是使用Gradle进行项目构建(比如AndroidStudio就是默认采用Gradle构建项目)。对于Android程序员而言,Gradle更熟悉一些。