一、引言


Apache Maven是一个项目管理和理解工具,它基于项目对象模型(POM)的概念,它可以管理项目的构建、报告和文档。

      上周总结的东西由于最近生活节奏比较乱没有整理,赶紧总结下别忘了,结构图如下:

      以前总听说maven比较方便jar包啥的都方便管理,跟微软的nuget差不多,使用比较方便,一直没用,终于有机会系统看了看,用起来==

      


分析maven依赖工具 maven依赖原理_生命周期


二、Maven基本原理与思想


 maven最主要的功能是依赖管理与项目构建,依赖管理与项目构建,依赖管理与项目构建,重要的事情说三遍==

分析maven依赖工具 maven依赖原理_maven_02


1、依赖管理

依赖管理主要是通过pom文件配置对jar包进行管理,不需要自己一个个往工程里面拷贝,首先从本地仓库中查找,查找不到会从中央仓库里面下载到本地仓库,很实用。


2、项目构建

主要是通过pom中插件配置每个生命周期中的进行相应的处理:如选择jre编译版本。



三、使用


1、maven安装与仓库配置


      首先肯定要安装jdk,然后按照这篇文章的步骤安装maven即可点击打开链接,讲的比较详细了==

      安装成功后,要配置下本地仓库的位置,一般默认位置为C:\Users\xcy\.m2\repository,最好自己配置下,当本地找不到jar包的时候就会从中央仓库下载,所以这个文件夹会越来越大。中心仓库默认为http://repo1.maven.org/maven2/


配置文件位置在:

分析maven依赖工具 maven依赖原理_分析maven依赖工具_03


修改本地仓库的位置参数为:

分析maven依赖工具 maven依赖原理_生命周期_04


2、maven工程目录

创建后的工程目录

分析maven依赖工具 maven依赖原理_eclipse_05



3、maven生命周期与命令


maven主要有三个生命周期,相互直接不会影响调用,在每个生命周期中运行某一个操作会把该生命周期之前的操作执行一遍。


clean:用于删除构建目录;

default(build):主要生命周期,用于构建应用

site:一般用来创建新的报告文档、部署站点等

具体详细的信息可以查看点击打开链接


4、eclipse 工程配置与创建


  • 新建web工程,点击file-new-maven project



  • 不勾选对号,next

分析maven依赖工具 maven依赖原理_配置_06




  • 选择web-app的archetype

分析maven依赖工具 maven依赖原理_maven_07




  • 填写groupid公司名或者域名倒置填写,填写artifact id项目名,版本号

分析maven依赖工具 maven依赖原理_maven_08



  • 添加tomcat library(默认没添加,不然会报错)

分析maven依赖工具 maven依赖原理_配置_09




分析maven依赖工具 maven依赖原理_配置_10




  • pom中配置jre版本(默认可能不是机子上装的版本),添加plugin,然后右击工程-maven-update project
<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.xcy</groupId>
  <artifactId>firsttest</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>firsttest Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>






5、pom配置(主要插件与依赖)


主要包括插件与依赖管理,举个例子说明下

<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.xcy</groupId>
  <artifactId>mvnwar</artifactId>
  
  
  <build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>3.0-alpha-1</version>
		</dependency>
	</dependencies>
  
  
	<packaging>war</packaging>
	<version>1.1</version>
</project>



      其中build中的plugin指的就是插件,该文件中设置了编译时的jdk版本;其中dependency里面写的就是项目依赖的jar包。

      在dependency里面有时会有一些scope标签,因为jar包用的范围不同,比如普通jar包就是compile每个地方都能用到,tomcat中的jar包为provided就是临时提供下最后不会i打包到程序中,jdbc为runtime编译不需要在运行的时候需要,junit为test仅在测试的时候用得到==



四、总结


  • maven原理与思想;



  • maven安装配置;



  • maven工程目录;



  • maven生命周期;



  • maven在eclipse中的使用;