web学习笔记20-maven学习

来源:互联网 发布:淘宝拍卖翡翠手镯被骗 编辑:程序博客网 时间:2024/06/13 22:52

1、什么是maven:

Maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。是一种自动化管理的工具。主要的功能就是可以管理jar包是apache下的一个产品。解决的项目的问题:a.如果有好几个项目,这好几个项目中,需要用到很多相同的jar包,    可以只建立一个仓库来解决。b.测试方法可以全部运行。c.把一个模块的功能放入到仓库中。

2、maven的安装:

从http://maven.apache.org/下载,下载完解压到你指定的路径把bin路径添加到PATH路径下运行mvn -v 检查是否安装成功。我下载的是 apache-maven-3.5.0-bin.zip

3、maven的仓库:

建一个本地仓库maven默认的仓库是在c盘 例如我的:C:\Users\Administrator.PC-20140217OXFV\.m2指定自己的仓库:    把D:\Install_Program\maven\apache-maven-3.5.0\conf下面的settings.xml文件复制到上述的路径中修改settings.xml文件<localRepository>D:/Install_Program/maven/myRepository</localRepository>

4、maven的约定:

我们使用maven,在项目文件放置需要遵守maven的约定src/main/java      存放项目的java文件src/main/resources  存放项目的资源文件,如spring,hibernate的配置文件src/test/java       存放所有的测试的java文件src/test/resources   存放测试用的资源文件target            项目输出位置,自动生成pom.xml  文件,很重要的配置文件maven的运行不需要myeclipse,我们为了方便

5、maven的命令:

第一次使用mvn clean ,mvn compile 网络不好的情况下会等蛮久的,主要是下载一些jar包到本地的仓库。我们在myeclipse中按照上面的格式创建一个项目
    HelloMaven        src/main/java            com.example.maven                Hello.java        src/main/resources        src/test/java            com.example.maven                HelloTest.java        src/test/resources        pom.xml
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>com.example</groupId> //这个名称就是之后你放到本地仓库中的 下一级目录      <artifactId>hello</artifactId> //这个名称就是本地仓库中 com.example 下一级目录      <version>0.0.1-SNAPSHOT</version> // hello + 0.0.1-SNAPSHOT版本号,就成了你的jar包的名称      <name>hi</name>      <description/>      <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>      </properties>     <!--  没有用到依赖库,暂时注释掉     <dependencies>            <dependency>                <groupId>junit</groupId>                <artifactId>junit</artifactId>                <version>4.9</version>            </dependency>        </dependencies>         -->    </project>
mvn clean:清除maven工程    我们在cmd中,cd到工程目录下面,执行mvn clean就会把target的目录给清除掉mvn compile:编译工程    成功后我们在cmd窗口中可以看到 [INFO] BUILD SUCCESS 的提示    并且在工程目录生成target目录,里面会生成class文件mvn test:执行测试目录里面的所有测试方法(只会执行有@Test标记的方法)mvn package:将工程打包成一个jar    例如上面的工程就在target目录下生成了一个 hello-0.0.1-SNAPSHOT.jar mvn install:将我们的jar包放到maven的本地仓库中:    例如:在D:\Install_Program\maven\myRepository\com\example\hello\0.0.1-SNAPSHOT 中就有我们的jar包    pom.xml文件就变成了 hello-0.0.1-SNAPSHOT.pom文件,内容是一样的。

6、maven的依赖:

有的时候我们的工程需要依赖其他的工程。那么我们可以在xml中配置依赖我们添加依赖的时候注意,在本地仓库中必须要有这个工程的jar包。是我们自己的工程我们就 mvn install 就放进去了。例如我们新建一个工程 HelloFriendcom.example.maven 包
    public class HelloFriend {        public void helloFriend(){            System.out.println("hello friend");            Hello hello = new Hello(); //我们使用上面工程的Hello类,eclipse报错不用管            hello.hello();        }    }
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.example</groupId>        <artifactId>helloFriend</artifactId>        <version>0.0.1-SNAPSHOT</version>        <description />        <properties>            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        </properties>        <!-- 加的依赖的配置 -->        <dependencies>            <dependency>                <groupId>com.example</groupId>                <artifactId>hello</artifactId>                <version>0.0.1-SNAPSHOT</version>            </dependency>        </dependencies>    </project>
我们cd到工程目录下,mvn compile 可以编译成功。说明我们的依赖配置OK。

7、maven依赖传递性:

比如我们现在有个工程HelloSuperFriend我们配置依赖了上面的HelloFriend,默认Hello工程的类也可以使用,就相当于也使用了Hello工程的依赖。

8、maven的jar包继承:

在基类的工程中配置:<groupId>com.example</groupId><artifactId>hello</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging> //我们配置了pom这个属性后,使用mvn compile 是不会生成target目录我们mvn install 命令后,会把当前的xml配置重名为一个pom文件存到本地仓库中,并没与jar文件例如我们想继承Hello工程我们只要配置:<parent>    <groupId>com.example</groupId>    <artifactId>hello</artifactId>    <version>0.0.1-SNAPSHOT</version></parent>这样我们就可以在这个工程中使用HelloMaven工程中的Hello类了关键了解 <parent> 属性和 <packaging> 的设置

9、maven的坐标:

我们如何来找一个jar包我们只需要确定这3个属性值就可以确定了,你可以在本地仓库中按照这个路径找。<groupId>com.example</groupId><artifactId>hello</artifactId><version>0.0.1-SNAPSHOT</version>网上提供的maven支持工程都会提供坐标的,所以我们可以根据坐标,联网就可以自动下载使用jar包

10、maven的仓库:

local repository 本地库center repisitory 中央库,在互联网上的url私服:就是war包,web工程,放到tomcat中,    我们可以在settings.xml的配置中配置mirror    就可以把私服配置到我们自己服务器,就从私服中查找jar包maven的执行原理:maven根据pom.xml文件,把它转化成项目对象模型(POM)这个时候要解析依赖关系,然后去相对应的maven库中查找到依赖的jar包。在clean,compile,test,package等阶段都有相应的Plug-in来做这些事情(插件在本地库 org/apache/plugins 中)。而这些plug-in会产生一些中间产物。

这里写图片描述

11、maven与myeclipse的整合:

myeclipse里面自带有maven,但是我们最好把我们自己的maven导进来。

一些简单的截图

这里写图片描述

这里写图片描述

myeclipse创建一个maven工程
这里写图片描述

这里写图片描述

创建完成之后,右击工程就可以执行maven的命令了,类似于命令行的
mvn compile 、mvn install …可是我们发现没有compile这个选项,于是我们可以这样
这里写图片描述

这里写图片描述

创建工程的时候肯定会遇到各种的报错,找不到jar什么的,我们一般使用依赖,使用maven自己在网上更新就ok

这里写图片描述

解决方法:在一个pom.xml写好依赖<dependency>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-war-plugin</artifactId>    <version>2.2</version></dependency>执行:mvn install 命令,就可以直接更新了自己已通过这个方法解决了好几个报错问题。eclipse中整合maven的好处,我们在pom.xml文件中加了一个dependency ,在Maven Dependencies中就可以看到jar包直接就引进来了,很神奇,方便。

还遇到一个问题,一直提示(网上找到说myeclipse2014和maven3.5不兼容)
这里写图片描述

我的解决方法是:
当然你也可以选择低版本。我没有选择低版本,还是用maven 3.5
这里写图片描述

M2_HOME: D:\Install_Program\maven\apache-maven-3.5.0
-Dmaven.multiModuleProjectDirectory=$M2_HOME

成功运行:
这里写图片描述

原创粉丝点击