zoukankan      html  css  js  c++  java
  • Maven介绍

    Maven是什么?

    Maven全名Apache Maven,是软件开发组织Apache开发的用于Java项目管理的自动构建工具。Maven解决了构建软件两方面的问题:

    1. 它描述了软件是如何建立的
    2. 它描述了它的依赖关系

    与Apache Ant不同的是,它为创建过程提供了规范。Maven使用XML文件来描述软件项目构建的过程、项目依赖的外部模块和组件、构建顺序、目录和需要的插件等。

    什么是POM?

    Maven项目通过项目对象模型(Project Object Model)来配置,配置信息存储在一个名为pom.xml的文件中。pom.xml是一个Maven项目的核心,一个Maven project可以没有代码,但不能没有pom,因为maven所有一切都是在pom里配置的。
    以下是pom.xml的一个例子:

    <project>
      <!-- model version is always 4.0.0 for Maven 2.x POMs -->
      <modelVersion>4.0.0</modelVersion>
      
      <!-- project coordinates, i.e. a group of values which
           uniquely identify this project -->
      
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1.0</version>
    
      <!-- library dependencies -->
      
      <dependencies>
        <dependency>
        
          <!-- coordinates of the required library -->
          
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          
          <!-- this dependency is only used for running and compiling tests -->
          
          <scope>test</scope>
          
        </dependency>
      </dependencies>
    </project>
    
    

    其中,groupId是我们的组织名称,artifactId是我们的项目名称,version是项目的版本号, dependencies是依赖关系列表。具体的标签含义,可以参考Apache Maven的官方主页:POM Reference,到时候我会写一篇POM的详解。

    使用Maven创建Java工程时会自动创建下图所示的目录结构:

    Maven中一些重要概念

    POM

    一个项目对象模型提供了单一项目需要的所有配置。通常的配置有: 项目的名字、所有者、对其他项目的依赖关系等。用户可以通过插件单独配置构建过程的每一小步。例如, 我们可以配置编译插件来使用Java 1.5来进行编译, 或者指定,如果一些单元测试失败也可以进行项目打包。
    大项目可以被分为若干个模块或子项目, 每个模块都可以有自己的POM。 POM还可以继承自其他的POM。所有的POM都 默认继承自一个Super POM。Super POM提供了默认的设置,比如默认的源代码目录,默认插件等。

    插件

    Maven实质上是一个插件执行框架,所有的工作都是通过插件完成的。Maven的插件主要分为构建插件和报告插件。

    • 构建插件 将会在构建期间被执行,需要在POM的元素下配置
    • 报告插件 将会在站点生成时被执行,在部分配置

    一个插件通过如下代码执行:

    mvn [plugin-name]:[goal-name]
    

    举个例子, 一个Java项目可以通过mvn compiler:compile用compiler插件的compile功能来编译。
    除了上面举出的例子,Maven还提供了丰富的插件功能,比如构建,测试,源代码管理,在服务器上运行,生成Eclipse项目文件等等,具体可以透过Maven Plugins页面进行了解。我们可以通过在pom.xml文件的部分配置使用哪些插件,这样做的好处是省去了繁琐的人工步骤,编译、单元测试、打包一气呵成。如果手动执行这些步骤,需要键入3行命令:

    mvn compiler:compile
    mvn surefire:test
    mvn jar:jar
    

    参考:
    Maven wiki
    Apache Maven主页
    [Maven Reference]http://books.sonatype.com/mvnref-book/reference/

  • 相关阅读:
    Prometheus监控MySQL服务(六)
    Prometheus监控Docker服务(五)
    Grafana与Prometheus集成(四)
    Prometheus监控Linux服务器(三)
    Prometheus配置文件(二)
    elasticdump数据迁移方法
    Prometheus介绍及二进制部署(一)
    PHP二维数组的引用赋值容易犯的错误
    Maven仓库国内镜像站
    加密文件之Java改进版
  • 原文地址:https://www.cnblogs.com/wacc/p/4933044.html
Copyright © 2011-2022 走看看