maven基础总结

一直在工程中使用maven,但是对于maven的概率还是非常的模糊,所以花了2个小时的时间,把maven的框架整理了一遍.
这篇的文章参考了许多资料,大部分是来自于网络的内容。
这篇的文章提到了maven的基本概念、maven项目的结构、maven的基本命令
资料汇总:
1:官方文档:http://maven.apache.org/
一:maven是什么?
 Maven 是一个用java编写的一个项目管理和构建自动化工具,比如可以创建一个java项目,构建编译java项目,管理项目库等等功能

目的:

1:让构建过程变的简单
2:提供一个统一构建方法来构建工程
3:提供高质量的工程信息
4:为软件开发提供一个指导
5:允许提供添加新的功能

maven使用篇:

1:如何安装:安装maven是指在本机上安装maven工具,可以通过命令行来使用maven工具
http://maven.apache.org/download.cgi 有针对win系统和unix系统的安装方法
2:配置maven
安装好后,如何使用maven呢?
先建立一个基本的mvn项目:
通过下面命令可以构建一个基本的mvn项目:
建立一个项目:
mvn archetype:create -DgroupId=com.demo -DartifactId=App
执行这个命令后成功后,就创建了一个基本的java项目:
里面除了基本的java代码坏,还有一个pom.xml文件
这个文件是来描述这个项目的配置文件:包括项目的名字、结构和依赖关系
说明: archetype是一个maven工具的插件,用来构建一个项目,java项目的基本结构有java简单项目、j2ee项目、Spring项目等等.通过这个插件都可以构造出
groupId:项目的java源代码的包名
artifactId:项目的名字
项目构建:
mvn packcage: 构建当前项目的命令
运行构建命令后,在项目的target下会出现下面的文件结构
maven基础总结
构建后的结构包括classes文件、maven项目描述、测试报告、测试类文件和jar包.
下面的图片是构建过程的日志信息,从下面的日志可以看出构建的流程
maven基础总结
maven基础总结
构建流程:
  • process-resources 阶段:resources:resources : maven-resources-plugin:2.6:resources (default-resources) @ App 

  • compile 阶段:compiler:compile :maven-compiler-plugin:2.5.1:compile (default-compile) @ App 

  • process-classes 阶段:(默认无目标)

  • process-test-resources 阶段:resources:testResources:--- maven-resources-plugin:2.6:testResources (default-testResources) @ App ---

  • test-compile 阶段:compiler:testCompile:

  • test 阶段:surefire:test: maven-surefire-plugin:2.12.4:test (default-test) @ App ---

  • prepare-package 阶段:(默认无目标) :

  • package 阶段:jar:jar :maven-jar-plugin:2.4:jar (default-jar) @ App ---

 

需要重点掌握的 

1:POM(Project Object Model):点击阅读(中文)Pom官方介绍
Pom用来描述一个工程对象模型:通过pom.xml文件定义项目的类型、名字和依赖关系

Xml 代码

        <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>com.mycompany.helloworld</groupId> 
     <artifactId>helloworld</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <packaging>jar</packaging> 

     <name>helloworld</name> 
     <url>http://maven.apache.org</url> 

     <properties> 
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     </properties> 

     <dependencies>
       <dependency> 
         <groupId>junit</groupId> 
         <artifactId>junit</artifactId> 
         <version>3.8.1</version> 
         <scope>test</scope> 
       </dependency> 
     </dependencies> 
    </project>     
2: Maven库
maven有一个非常值得称道的功能就是统一管理jar包,通常称为maven库。如果一个大项目有n个子项目的话,
都通过maven库来统一管理jar包
如果你 是win系统,那么在 C:\Users\username\.m2\repository 下可以看到项目所用到的jar包 .