Maven学习笔记

一、Maven的简介

1.1 Maven是什么

maven是apache下的一个开源项目,是纯java开发的,并且只是来管理java项目的。

1.2 Maven的好处

在项目体积上,maven项目的体积是非常小的,因为在项目中没有附带jar包的引用。

普通的传统项目

maven项目

maven的项目为什么这么小,是因为没有jar的原因。但是项目肯定是需要jar包的,只是jar没有存在maven项目里边,存到的另外的地方。

1.3 依赖管理

在项目的开发中,我们常常需要引用一些jar包,而这些jar也引用到别的jar,如此,我们就需要连同引用的jar包也需要找到。这样依赖我们就需要记住很多需要的jar包,有了maven,我们就可以只需要记住一个主要的功能jar包,对于这个jar包的引用,就可以自动的添加到项目中,十分方便。

1.4 项目的一键构建

使用maven之后,理论上来说,我们可以完全脱离ide,直接对写好的代码进行 编译、测试、运行、打包、部署等一系列操作,只需一个命令,我们就可以完成整个项目的构建。

1.5 总结

对jar包的统一管理

项目的一键构建

统一开发规范(文件目录结构,存储位置)

跨平台,应用于大型项目提高开发效率。

二、Maven的安装

2.1 maven的下载

下载地址:http://maven.apache.org/download.cgi

点击下载后 ,会有一个压缩文件

直接解压出来的文件夹就是我们要用的maven了。

2.2 配置环境变量

在path里边接入maven的文件夹,就是刚才解压出来的路径

运行mvn -version命令查看版本,如果输出如下,证明安装成功。

2.3 仓库

仓库是maven保存所有jar包的地方,默认maven会建立一个本地仓库,在当前用的的.m2的文件夹下面

我的是在:C:\Users\Emma\.m2\repository ,里边存了很多jar包

2.3.1 本地仓库

本地仓库就是你本机的仓库,上边就是一个本地仓库,你可以手动配置一下本地仓库的路径。修改conf配置中的settings.xml就可以设置本地仓库的路径。

2.3.2 远程仓库(私服)

公司提供的一个仓库,开发人员可以公用,由公司来维护。

2.3.3 中央仓库

全球的仓库,有maven团队来维护,存放了最全的jar包,还有开发者们提交的各种jar包。

三、Maven入门与配置

3.1 Maven的目录结构

3.2 pom.xml文件

pom.xml文件是maven项目的核心,它包含了一系列的jar包的依赖以及项目的信息,项目的一件构建执行命令都要从它里边获取相关配置信息。

下面就是一个pom.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>withmaven</groupId>
  <artifactId>withmaven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name/>
  <description/>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

1. modelVersion

指定了当前maven模型的版本号,对于maven2或maven3来说,只能是4.0.0。

2. groupId

顾名思义,组的id,是公司名或者组织名,一般来说groupId是由三个部分组成,每个部分之间以"."分隔,第一部分是项目用途,比如用于商业的就是"com",用于非营利性组织的就  是"org";第二部分是公司名,比如"tengxun"、"baidu"、"alibaba";第三部分是你的项目名。

3. artifactId

可以认为是Maven构建的项目名,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式,比如spring若要作为一个maven项目,那么groupId可以是org.springframework,artifactId可以是springmvc或者springjdbc。

4. version

版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。在Maven中很重要的一点是,groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,这非常重要,我在使用和研究Maven的时候多次感受到了这点。

5. packing

项目打包的类型,可以使jar、war、rar、ear、pom,默认是jar。

6. dependencies和dependency

前者包含后者。前面说了,Maven的一个重要作用就是统一管理jar包,为了一个项目可以build或运行,项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些依赖就被称为dependency。

  说到这里,就有一个本地仓库远程仓库的概念了。官方下载的本地仓库的配置在"%MAVEN_HOME%\conf\settings.xml"里面,找一下"localRepository"就可以了;MyEclipse默认的本地仓库的地址在"{user.home}/.m2/repository"路径下,同样找一下"localRepository"就可以找到MyEclipse默认的本地仓库了。

  本地仓库和远程仓库是这样的,Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar包时,本地仓库会从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用

  举个例子,比方说我的项目中用到了MyBatis,那么可以这么配置:

<dependencies>

    <dependency>

        <groupId>org.mybatis</groupId>

        <artifactId>mybatis</artifactId>

        <version>3.2.5</version>

    </dependency>

</dependencies>

 之前有说过groupId、artifactId、version唯一标识一个Maven项目,有了这三个元素,我们就可以去远程仓库下载MyBatis3.2.5.jar到本地仓库了。回想我们之前的做法,如果要MyBatis的jar包,发现没有,然后去网上下载一个,需要另外的jar包,然后去网上下载一个,但是有了Maven,就方便多了,只需要配置jar包对应的dependency依赖,Maven会自动帮助我们去远程仓库中下载jar包到本地仓库中。

7. properties

  properties是用来定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级。

8. build

  build表示与构建相关的配置,比如build下有finalName,表示的就是最终构建之后的名称。

9. plugins

构建所用的插件,也可以说执行某些命令时所用到的插件,比如我们可以直接执行tomcat:run就可以启动一个项目而不需要部署发布到tomcat,甚至不需要下载tomcat,这是因为maven中有tomcat-plugin这个插件。

3.3 maven常用命令

3.3.1 clean

clean 清理命令,来清理编译过的文件,即删除target目录

3.3.2 compile

compile 编译命令,编译src中的java代码,生成target目录。

3.3.3 test

test 测试命令 用来编译运行测试

3.3.4 package

package 打包命令,把项目打成jar或者war包

3.3.5 install

install 安装命令 把自己开发的包(多指jar包)安装到本地仓库,大项目中你自己开发包可能别的模块要用就要安装到本地,以供其他项目来使用。

四、项目构建

4.1 Maven4MyEclipse配置

默认MyEclipse自带的有maven,配置啥的都是默认的,如果你重新安装了maven,要使用新的maven,那么就要配置一些路径

然后打开,修改你自己的maven路径

用户设置

我这里是提前设置了自己的maven的配置文件和本地仓库地址,然后配置到MyEclipse中去,这样的话这写目录自己就比较了解和清晰了。

4.1 第一个maven项目

由于MyEclipse版本各部项目,创建maven项目的方式也不一样,我们就不再写创建maven项目的过程了,根据提示相信大家都能找到怎么创建项目

创建的项目如下

创建之后可能会报错,因为有些包可能没有。右键该工程,找到如下菜单,更新依赖包

注意了,由于默认的远程中央仓库地址是国外的,可能被墙,几乎所有的包都会更新失败,所以我们要配置一下远程仓库的地址,也就是镜像,这里我们要配置成阿里云的镜像地址。

打开maven的settings.xml文件,找到<mirrors>节点,加入如下代码

  <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>

这样的话我们就能成功的更新所有的依赖包了,更新完之后maven项目就不会有什么红叉

4.2 配置springmvc项目

4.2.1 添加配置

如图:

按照传统的mvc项目的配置添加控制器和配置文件,配置内容都一样 springmvc.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
 
	<!-- 配置controller扫描包 -->
	<context:component-scan base-package="com.baidu.web" />
 
</beans>

4.2.2 web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
 
	<!-- 配置SpringMVC前端控制器 -->
	<servlet>
		<servlet-name>springmvc-first</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 指定SpringMVC配置文件 -->
		<!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
	</servlet>
 
	<servlet-mapping>
		<servlet-name>springmvc-first</servlet-name>
		<!-- 设置所有以action结尾的请求进入SpringMVC -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

配置完成之后,项目右键-Run As - Maven build... 使用package命令 打包,然后把target目录中打好的war包部署到tomcat服务器就可以运行成功了。

五、总结

总结起来,maven为我们提供了管理包的依赖和项目的构建,提高了我们的开发项目,规范了我们的开发方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值