Maven_学习、搭建、应用

一、什么是Maven?

  

  Apache maven 官网: http://maven.apache.org/

  Maven3的所有版本的下载地址:https://archive.apache.org/dist/maven/maven-3/

  Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。

 这是maven的一系列执行流程:

二、maven的安装和配置

  Maven的安装,解压maven的安装包即可使用

  Maven的目录介绍
    Bin:存放执行脚本文件的地方
    Boot:存放一些扩展的地方
    Conf:maven的核心配置文件存放的路径
    Lib:maven的依赖包

     

  maven的配置:

    主要的配置文件是    conf >> settings.xml

  在配置文件中主要配置以下内容:

  1、配置本地仓库的路径

  

  2、可以选择配置阿里云的maven仓库镜像(对于maven仓库的jar下载速度有影响)

    

<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
 </mirror>

  3、配置maven的环境变量

  

MAVEN_HOME=该处填写个人maven的路径E:\apache-maven-3.2.1
Path=%MAVEN_HOME%\bin

  4、进行验证

  到此说明maven已经安装完毕。

三、maven与eclipse的集成开发

  1、如果eclipse没有maven插件,就需要安装插件,打开eclipse验证下

 打开window >> preferences >> maven  如果没有maven就需要安装插件 —> 2

  2、安装maven插件

    打开eclipse点击help-->Install New Software,然后输入要

  下载插件的链接地址 http://m2eclipse.sonatype.org/sites/m2e   后回车,勾选择要下载的项,点击下一步进行下载。下载完成会自动安装

  速度可能会有些慢,还有第二种离线安装的方法,网络搜索 eclipse-maven-plugin  进行下载

  复制到eclipse的安装目录下,如果提示文件夹已经存在,直接合并即可。

3、进行重启验证是否安装成功

 4、进行相关配置

  配置maven的安装目录

  window > preferences > maven >Installations > Add > Directory(选择你的maven目录) > Finsh > Apply 应用即可

  配置maven仓库的位置

其中默认选择maven安装目录下的settings.xml,可以自己自定义maven仓库目录(推荐)。

四、在eclipse中进行maven项目的开发

  1、java项目工程的开发

这里选择可以跳过maven骨架的设置(推荐)

  2、javaweb项目的开发

  只是这里的选择是 war

  对于maven中的web.xml文件缺失问题,可以使用  项目上右击选择javeEE的工具帮我们创建

  

  每个maven软件项目的管理和工具都在pom.xml中进行配置  详细看 ——>  五

五、maven的核心概念

  1、maven中坐标的概念

    Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范,拥有了统一规范,就可以把查找工作交给机器

   Maven坐标主要组成

    • groupId:定义当前Maven项目隶属项目
    • artifactId:定义实际项目中的一个模块
    • version:定义当前项目的当前版本
    • packaging:定义该项目的打包方式

  2、maven的依赖管理与依赖范围 

    如何进行依赖配置?

      传递性依赖和可选依赖,排除依赖
    其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:
    1.compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
    2.test:测试依赖范围。只对于测试classpath有效
    3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
    4.runtime:运行时提供。例如:jdbc驱动

      依赖范围对传递依赖的影响

  

      Maven的直接依赖与间接依赖

  

  3、maven 仓库管理

  用来统一存储所有Maven共享构建的位置就是maven仓库(简单而言就是项目所需的各种依赖jar包)

  Maven仓库布局
    • 根据Maven坐标定义每个构建在仓库中唯一存储路径
    • 大致为:groupId/artifactId/version/artifactId-version.packaging
  仓库的分类
    • 本地仓库
      ~/.m2/repository/
      每个用户只有一个本地仓库
    • 远程仓库
    • 中央仓库:Maven默认的远程仓库
      http://repo1.maven.org/maven2
    • 私服:是一种特殊的远程仓库,它是架设在局域网内的仓库

  4、maven的生命周期

    何为生命周期?
      • Maven生命周期就是为了对所有的构建过程进行抽象和统一
      • 包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤
     Maven三大生命周期
      • clean:清理项目的
      • default:构建项目的
      • site:生成项目站点的

      • 生命周期Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:
        Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
        Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
        Site Lifecycle 生成项目报告,站点,发布站点。
        再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。

     

  5、maven的插件

    • Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的
    • 每个插件都能实现多个功能,每个功能就是一个插件目标
    • Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务

  例如:

<build>
<plugins>
        <!--     配置Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <path>/</path>
                    <port>8086</port>
                </configuration>
            </plugin>
<!--  maven的源码打包插件 -->
 <plugin>  
                <artifactId>maven-source-plugin</artifactId>  
                <version>2.4</version>  
                <configuration>  
                    <attach>true</attach>  
                </configuration>  
                <executions>  
                    <execution>  
                        <phase>package</phase>  
                        <goals>  
                            <goal>jar-no-fork</goal>  
                        </goals>  
                    </execution>  
                </executions>  
            </plugin>  
</plugins>
    </build>
View Code

  6、maven的私服

    什么是私服?
    为什么使用Nexus私服软件?
      Nexus安装与使用
      Nexus的仓库和仓库组
        宿主仓库
        代理仓库
        仓库组
    配置Maven从Nexus下载,部署构建

   

  有关于maven私服的使用较少,想了解的可以参考:

    搭建私服那点事:https://www.cnblogs.com/zishengY/p/7794923.html

  

猜你喜欢

转载自www.cnblogs.com/null-/p/9991451.html