zoukankan      html  css  js  c++  java
  • 【Maven】学习记录

    一、Maven的作用

    1.项目模块管理

      一个项目可能是由多个模块构成,使maven来管理多个模块。

    2.依赖关系管理

      当不使用maven时,每次构建新的项目必须将许多jar包添加到classpath中,如果漏了某个jar包都会报错。而使用maven之后可以在一个pom.xml文件中管理jar包。修改和替换都很方便。

    3.项目构建(摘自Maven生命周期详解)  

    Maven有三个生命周期,每个生命周期由一组阶段组成。生命周期之间相互独立,可以单独调用。而生命周期内的阶段则是相互依赖的:

    • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
    • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
    • Site Lifecycle 生成项目报告,站点,发布站点。

    我再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。

    二、Maven的使用

    1.Maven目录结构(摘自‘孤傲苍狼’博客)

    MavenProjectRoot(项目根目录)
       |----src
       |     |----main
       |     |         |----java ——存放项目的.java文件
       |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
       |     |----test
       |     |         |----java ——存放所有测试.java文件,如JUnit测试类
       |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
       |----target ——项目输出位置
       |----pom.xml ----用于标识该项目是一个Maven项目

    2.手动创建Maven项目

    Maven遵循约定大于配置的原则。只要符合Maven规定的目录结构,就可以说是一个maven项目。学习Maven时手动创建一个Maven结构是一个不错的实践。

    3.pom.xml文件

    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/maven-v4_0_0.xsd">
        <!--项目信息-->
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.thunder.testproject</groupId>
        <artifactId>hello-world</artifactId>
        <version>1.0-SNAPSHOT</version>
    </project>
    View Code

    project:根节点元素,他还声明了一些与pom相关的命名空间和xsd文件,虽然这些不是必需的。但是它们可以使一些IDE工具帮助我们快速编辑POM文件。

    modelVersion:指定当前POM模型版本,对于Maven2和Maven3来说,必须是4.0.0。

    groupId:定义项目属于哪个组,一般的格式为->反写的公司网址.项目名

    artifactId:定义了属于项目组的哪一个模块,一般为->项目名.模块名

    version:版本,SNAPSHOT是快照的意思,意为正在开发的版本。

    以上这些元素是构成pom的最基础的元素,groupId:artifactId:version可以看做一个坐标(coordinate),“坐标”可以唯一确定一个项目,它标注了项目在“仓库”中的位置。

    又引出了”仓库”(repository)这个东西,当我们“构建”项目的时候,Maven会分析pom.xml中的配置,如果在“本地仓库”中找不到该“坐标”定位的项目,则会去“中央仓库”中下载。

    “中央仓库”:存放了当今大部分流行的java开源项目,但由于“来自东方的神秘力量”的限制,国内访问该仓库可能出现链接问题,此时可以使用“镜像仓库”。

     4.Maven命令

    Maven生命周期的各个阶段会绑定一些插件,我们输入生命周期下的阶段,然后会按顺序执行绑定的插件。

    创建了一个maven项目结构之后,可以将当前目录切到Maven项目下,然后执行mvn compile

    之后会自动搜索src/main/java中的java文件,编译之后放到target/classes中

    三、使用maven查找依赖冲突

      Eclipse中的依赖树可以很方便的看到依赖

  • 相关阅读:
    Qt 信号与槽
    Qt 项目中main主函数及其作用
    Windows下的GUI 库
    ABP进阶教程0
    ABP入门教程15
    ABP入门教程13
    ABP入门教程12
    ABP入门教程11
    ABP入门教程10
    ABP入门教程9
  • 原文地址:https://www.cnblogs.com/zaixiuxing/p/4954912.html
Copyright © 2011-2022 走看看