这是我第一次写博客,这个想法源于我的师傅对我的建议,一是与大家一起进步,二是让自己养成总结的好习惯。
“如果你步入的maven的世界,你便打开了Java的另一扇大门”。
这篇文章是面向没有接触过maven的同学们,对于maven玩的很溜的,请指出该文章的不足。
导读
1.什么是maven?
2.为什么使用maven?
3.maven的安装。
4.maven初体验。
5.maven的基本指令。
1.什么是maven?
maven就是一种项目对象模型(POM),可以通过一小段描述信息来管理项目的构建。说白了就是通过一个配置文件管理整个项目的build。它是一个主要服务于Java平台,出自Apach组织的开源的牛逼项目。主要功能是项目构建、依赖管理、项目信息管理。具体关于maven的非技术历史,这里不多说,自行百度。
2.为什么使用maven?
因为maven是一款很强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试、生成报告、打包、部署等等,如果我们纯手动,会很浪费时间的,面向对象编程的优点在于模块化,提高复用性。那么maven就是这一系列操作的封装(我是这样认为的,如有不恰当之处,请指出),如果需要做这些操作,我们只需一个指令,maven就可以替我们完成这一系列操作,从而节省大量无意义的、机械的动作,提高编程效率,而不再是我们进行重复的设计,重复的编码,重复的文档 ......(此处省略n+1个文字,没错,maven就是这么强大)
3.maven的安装。
下载完成后,点击解压到指定的文件夹。解压完成后还没完...还要进行环境变量的配置。
将maven安装的目录路径配置到环境变量,并给变量起名字(这是为了在以后升级时,仅将此处路径更改即可,而不必改动PATH路径的变量,我们要充分利用计算机内变量这一机制,这样可以大量减少我们的操作)。
将变量名配置到PATH的值内,这是为了无论我们在哪个位置都可以使用maven指令。接下来我们随手打开cmd,输入mvn -v,这是查看maven的版本,同时也是看一下我们环境变量是否配置成功。如果提示not found,就表示没有成功,自己再好好琢磨一下吧。
如果配置成功,我们再dos窗口输入mvn help:system,这是打印所有java系统属性和环境变量,在这里是为了让maven第一次运行一个任务,将maven在你的计算机上能够有一个完整的结构。运行完之后,你的个人账户的所有应用配置文件夹(也就是C:\Users\%uname%\)下,会出现~.m2文件夹,这个就是maven在你电脑上,属于你的maven配置的文件夹。
接下来我们来到你的%MAVEN_HOME%\config目录里,你会看到这些:
其中,settings.xml将会时我们日后经常访问的文件,它时maven的配置文件,maven的设置全部来自该配置文件的参数配置。我们刚刚接触maven,我们只需对它来个初步设置,具体的其他设置我们日后再议。接下来我们将它复制到C:\Users\%uname%\.m2下,然后打开它,你会看到200~300行的代码,我们初学者只需添加一行代码即可:
上面已注释的代码说的很清楚,这个是maven在你计算机的本地仓库(就是项目所需的依赖在本地计算机的储存位置)的配置位置,默认在与该配置文件所在文件夹内的\repository文件夹内。而我不喜欢如此大的文件放在小小的C盘里,所以放到了D盘。到这里,我们maven的安装就完成了。
4.maven初体验
我们使用Myeclipse创建一个maven项目,(Myeclipse已集成maven),只需在配置里面把maven设置一下即可
将它设置为自己安装的maven,尽量不要使用自带maven(集成不代表自带)。
然后File > New > Other > Maven > Maven Object ,先不要点击Create a simple project,那个以后再议,Next,然后选择maven-archetype-quickstart,在这里可以讲Archetype理解成Maven项目的模板,例如maven-archetype-quickstart就是最简单的Maven项目模板,只需提供基本的元素,如groupId,artifactId,version等,它就能生成项目的基本结构及POM文件。接下来的groupId,artifactId,version是maven的基本元素。
groupId:指的是你属于哪些组织,在这里你可以写你的名字+域名归属的倒置。
artifactId:指的是该项目的id。
version:该项目的版本。
然后就可以编辑pom.xml的代码了,如下:
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 本项目基本坐标 -->
<groupId>cn.zuoyu.fistmaven</groupId>
<artifactId>hello-maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>hello-maven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<!-- 控制java版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
然后编写一个实体类和一个测试类,编写完之后,我们在该项目的目录下打开dos窗口,输入mvn test,可见:
这是maven的测试,成功!
接下来用maven制作jar包,当然前提是给项目加一个main方法,然后再pom.xml下加入一下代码,路径是main方法的路径,不要弄错了:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>cn.zuoyu.fistmaven.hello_maven.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
这个是maven里的maven-shade-plugin插件,用于将项目做成可执行的jar文件。
我们再dos里输入mvn clean install,会看到:
然后我们打开项目文件夹下的\target文件夹,会看到生成:
其中hello-maven-0.0.1-SNAPSHOT.jar是带有Main-Class的可运行jar文件,而original-hello-maven-0.0.1-SNAPSHOT.jar是原始的可供其他项目使用的jar文件。
如果我们在该文件夹打开dos输入java -jar hello-maven-0.0.1-SNAPSHOT.jar,可见:
可以执行了。
5.maven的基本指令。
1. 编译测试代码:
mvn test-compile
2. 运行测试:
mvn test
3. 产生site:
mvn site
4. 打包:
mvn package
5. 在本地Repository中安装jar:
mvn install
6. 清除产生的项目:
mvn clean
7. 生成eclipse项目:
mvn eclipse:eclipse
8. 生成idea项目:
mvn idea:idea
9. 组合使用goal命令,如只打包不测试:
mvn -Dtest package
10. 编译测试的内容:
mvn test-compile
11. 只打jar包:
mvn jar:jar
12. 只测试而不编译,也不测试编译:
mvn test -skipping compile -skipping test-compile
13. 清除eclipse的一些系统设置:
mvn eclipse:clean
14.查看当前项目已被解析的依赖:
mvn dependency:list
ok了,今天的maven使用教程就到此为止了!!!
如有不当地方可以邮件给我:zuoyuip@qq.com