首先说明一下,这篇文章并没有涉及maven在eclipse中的使用,搭建的环境只是支持了maven的命令,文章中的这个小例子是用记事本写的。关于eclipse配置maven,下篇文章会讲。
一、Maven环境搭建
maven是使用java开发的,所以要使用maven,必须得有jdk,这里就不再赘述了。
(1)http://maven.apache.org/下载相应的压缩包
(2)配置环境变量
在系统变量中添加M2_HOME,值为Maven的安装路径
在Path值的后面添加;%M2_HOME%\bin
(3)在命令行中输入mvn -v
如果显示如上图,则说明配置成功,否则检查一下哪步出错了。
二、Maven介绍
(1)maven两大核心
-
依赖管理:对jar包进行管理。
-
项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署都可以通过命令来实现。
(2)maven仓库类型
- 本地仓库:在个人的计算机上。
- 私服:存在于局域网上的一台服务器。
- 中央仓库:在互联网上,有maven团队进行维护。
如果我们拥有一个中央的仓库那该多好,想用什么jar包就用什么jar,但无奈那堵墙,使得中央仓库的下载速度很慢。我们可以使用阿里云的maven镜像,里面的jar是比较全的,关键下载速度还快。只需要在我们解压出来的maven压缩包里的conf文件夹下的settings.xml配置一下就可以了。打开找到 <mirrors>标签,在里面加上下面的代码
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
三、Maven项目的目录结构
src
-main
-java
-package
-test
-java
-package
-resources
四、maven常用命令
介绍命令之前,先创建好maven项目并写一些代码。
在main文件夹下有一个Maven01.java
package com.codeliu.maven; public class Maven01 { public String say() { return "Hello world"; } }
在test 文件夹下有一个MavenTest.java
package com.codeliu.maven; import org.junit.*; public class MavenTest { @Test public void testMaven01() { Assert.assertEquals("Hello world", new Maven01().say()); } }
下面开始介绍命令。
(1)mvn compile
听名字都知道,这个肯定是编译,将.java文件编译成.class文件。
我们进入项目的根目录下,输入这个命令,会发现根目录下会多一个target的文件夹,里面就有.class文件。
(2)mvn clean
这个命令,可以清除我们生成的.class文件,执行此命令后,target文件夹会消失。
(3)mvn test
执行此命令后,就会运行test文件夹下的测试代码
注意:测试代码必须放在test文件下,且必须以*Test.java命名。
(4)mvn package
这个命令是把项目进行打包,如果是普通的java项目,就会打包成jar,如果是web项目,就会打包成war。
它会存放在我们项目根目录下的target文件夹下。
(5)mvn install
有时候如果我们一个项目要用到另一个项目的一些代码,那肯定是copy啊,现在使用maven就不一样了,我们可以使用mvn install命令,将我们自己的项目生成jar包,这样其他项目要使用只需要import一下就可以了。
可以看到,把生成的jar包放在了这个目录下,其实这个目录就是我们maven本地仓库的默认路径(如果你没有进行修改的话)
五、maven项目的生命周期
在maven中存在“三套”生命周期,它们互不影响,相互独立。
-
CleanLifeCycle:清理生命周期,对应上面的clean命令。
-
defaultLifeCycle:默认生命周期,compile,test,package,install,deploy(部署)。
-
siteLifeCycle:站点生命周期。site。
为啥说它们互不影响呢?因为执行clean命令,并不会执行默认生命周期中的命令,执行compile命令,也不会执行clean命令。但如果你执行install命令,那么前面的compile,test,package操作都会执行。