zoukankan      html  css  js  c++  java
  • 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%in
    

      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

      

  • 相关阅读:
    聊聊自定义实现的SPI如何与spring进行整合
    聊聊读源码这件事
    聊聊自定义SPI如何使用自定义标签注入到spring容器中
    聊聊如何自定义数据脱敏
    聊聊自定义SPI如何与sentinel整合实现熔断限流
    排查not eligible for getting processed by all BeanPostProcessors
    SqlServer 数据脱敏脚本
    WPF 窗体使用 Show() 单个显示并设置弹窗相对于主窗体位置
    【SQLite】获取插入 ID 的几种方式
    Winform DataGridView 行单元格增加自定义 ToolTip
  • 原文地址:https://www.cnblogs.com/null-/p/9991451.html
Copyright © 2011-2022 走看看