Maven简介
今天本来是想学学spring的,结果到官网上一看,最新的建立spring的方式要用的maven,麻烦啊,转而又去看了看maven的相关内容。
简单来说,Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。这个是百度百科的定义,大家看看就可以了~其实更深的知识点我也不是很清楚,这里只是记录一下我学习,使用的一个过程,以后可以用来借鉴。
maven下载
maven配置
配置不用说,类似于jdk配置方式,在环境变量里面配置M2_HOME变量指向解压后的maven,bin目录下,然后在系统变量path中加入%M2_HOME%.查看是否成功的话:打开cmd,输入mvn -v如果现实相关信息,则配置成功。
maven命令
maven命令有:
- mvn -v :显示相关信息
- mvn clean :清楚target
- mvn compile :编译
- mvn test: 测试
- mvn package:打包
- mvn install :安装到本地仓库。
maven项目目录结构
-maven
-src
-main
-java
-package
-test
-java
-package
package下存放代码。
开始maven的HelloWorld,如main->java->com->sun中有HelloWorld.java文件
package com.sun;
public class HelloWorld{
public String sayHello(){
return "hello world";
}
}
test->java->com->sun下测试文件:HelloWorldTest.java
package com.sun;
import org.junit.*;
import org.junit.Assert.*;
public class HelloWorldTest{
@Test
public void testSayHello(){
Assert.assertEquals("hello world",new HelloWorld().sayHello());
}
}
注意单元测试的时候要引包,这里不需要实际的jar包,maven会根据所引用的包自动从网上下载。
最后一步配置pom.xml配置文件,存放在和src同一个目录下。具体pom配置文件后面细说
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sun</groupId>
<artifactId>HelloWorld</artifactId>
<version>0.0.1SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>
编译运行
cmd进入到maven目录下运行mvn compile 第一次运行,maven会去自动的下载所需要的一些插件。
编译成功后,在src同目录下多了一个target文件。
之后就可以进行测试了运行mvn test
mvn clean 清理的工具,使用能清理编译后的信息。
本地仓库
默认在user用户下的.m2文件夹下面,可以看到都是一下jar包,插件之类的
由于user目录存放在c盘,如果重装系统的时候,很容易清空,所以我们可以设置它的存放目录。
自动创建目录
从上面,我们可以看出,如果要手动创建一个maven项目,是一个很麻烦的事情,要建立很多的文件夹,这个时候我们就应该考虑,有没有自动创建的方式,相信,这些东西肯定是存在的。
###创建目录的两种方式
1.archetype:generate 按照提示进行选择
2.archetype:generate -DgroupId=组织名,公司的网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=包名
pom.xml文件信息和相关命令
定义一个文件,是用坐标来定义的,坐标在这里的含义为相关的构建,例如上面的。
<groupId>com.sun</groupId> 组织名称例如com.sun.....
<artifactId>HelloWorld</artifactId> 项目名-模块名
<version>0.0.1SNAPSHOT</version> 版本号:第一个o代表大版本号,
第二个0表示分支版本号,
第三个0表示小版本号。
这些标识了一个java文件
如果一个类想要引用另一个类中的对象或者方法,比如一个新的speak类中有个hi方法,要调用上面的HelloWorld,如果直接编译speak所在的目录,则会提示错误,找不到HelloWorld.java文件。这个时候就可以把HelloWorld.java所在maven目录,也即上面的项目目录安装到本地仓库中,用命令 mvn install。
这样当编译测试speak所在另一个项目是,当他遇到HelloWorld.java里面的方法时候,就会去本地仓库中寻找。当然这里要在配置文件中,告诉相关信息,用依赖来表示。
<modelVersion>4.0.0</modelVersion>
<groupId>com.sun</groupId>
<artifactId>Speak</artifactId>
<version>0.0.1SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>com.sun</groupId>
<artifactId>HelloWorld</artifactId>
<version>0.0.1SNAPSHOT</version>
</dependency>
</dependencies>
mvn在eclipse中插件用法。
new->others->maven->maven project 然后根据相关提示,输入信息建立即可
eclipse 在比较新的版本中自带maven插件。
以上就是我今天大半天的学习,简单总结个流程出来,供他人参考,如有不足或者错误,还望见谅~~~