maven的使用(基础1)


 

  这是我第一次写博客,这个想法源于我的师傅对我的建议,一是与大家一起进步,二是让自己养成总结的好习惯。

  “如果你步入的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下载页面

  下载完成后,点击解压到指定的文件夹。解压完成后还没完...还要进行环境变量的配置。

  maven的使用(基础1)

  将maven安装的目录路径配置到环境变量,并给变量起名字(这是为了在以后升级时,仅将此处路径更改即可,而不必改动PATH路径的变量,我们要充分利用计算机内变量这一机制,这样可以大量减少我们的操作)。

  maven的使用(基础1)

  将变量名配置到PATH的值内,这是为了无论我们在哪个位置都可以使用maven指令。接下来我们随手打开cmd,输入mvn -v,这是查看maven的版本,同时也是看一下我们环境变量是否配置成功。如果提示not found,就表示没有成功,自己再好好琢磨一下吧。

  如果配置成功,我们再dos窗口输入mvn help:system,这是打印所有java系统属性和环境变量,在这里是为了让maven第一次运行一个任务,将maven在你的计算机上能够有一个完整的结构。运行完之后,你的个人账户的所有应用配置文件夹(也就是C:\Users\%uname%\)下,会出现~.m2文件夹,这个就是maven在你电脑上,属于你的maven配置的文件夹。

  接下来我们来到你的%MAVEN_HOME%\config目录里,你会看到这些:

  maven的使用(基础1)

  其中,settings.xml将会时我们日后经常访问的文件,它时maven的配置文件,maven的设置全部来自该配置文件的参数配置。我们刚刚接触maven,我们只需对它来个初步设置,具体的其他设置我们日后再议。接下来我们将它复制到C:\Users\%uname%\.m2下,然后打开它,你会看到200~300行的代码,我们初学者只需添加一行代码即可:

  maven的使用(基础1)

  上面已注释的代码说的很清楚,这个是maven在你计算机的本地仓库(就是项目所需的依赖在本地计算机的储存位置)的配置位置,默认在与该配置文件所在文件夹内的\repository文件夹内。而我不喜欢如此大的文件放在小小的C盘里,所以放到了D盘。到这里,我们maven的安装就完成了。

 

4.maven初体验

  我们使用Myeclipse创建一个maven项目,(Myeclipse已集成maven),只需在配置里面把maven设置一下即可

   maven的使用(基础1)

  将它设置为自己安装的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的使用(基础1)

  这是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,会看到:

  maven的使用(基础1)

  然后我们打开项目文件夹下的\target文件夹,会看到生成:

  maven的使用(基础1)

  其中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,可见:

  maven的使用(基础1)

  可以执行了。

 

 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

 


上一篇:SpringCloud Alibaba实战二十七 - Oauth2认证服务器自定义异常


下一篇:thinkphp模板中使用方法