美文网首页
Maven - 软件工程管理和整合工具

Maven - 软件工程管理和整合工具

作者: kviccn | 来源:发表于2017-02-08 19:44 被阅读78次

    Apache Maven 是一套软件工程管理和整合工具。基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建、报告和文档。

    下载

    Maven官网 上下载 Maven 的安装包。

    安装

    本文以 Windows 下的安装为例,需提前配置好 Java 环境。Java 环境的配置方法看这里

    1. 将下载的文件解压到任意目录,如:
    D:\Program Files\Java\tools\apache-maven-3.3.9
    
    1. 添加如下环境变量:
    M2_HOME=D:\Program Files\Java\tools\apache-maven-3.3.9
    M2=%M2_HOME%\bin
    MAVEN_OPTS=-Xms256m -Xmx512m
    并在Path环境变量末尾添加 %M2%
    
    1. 验证安装
      打开命令控制台 输入 mvn -v,输出如下信息则安装成功。
    Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
    Maven home: D:\Program Files\Java\tools\apache-maven-3.3.9
    Java version: 1.8.0_102, vendor: Oracle Corporation
    Java home: D:\Program Files\Java\jdk1.8.0_102\jre
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
    

    配置

    1. maven 安装目录下的 conf 目录中拷贝一份 settings.xml 文件到 %HOME%\.m2 文件夹中,如果没有该文件夹则手动创建。
      小提示:windows上无法正常创建以 . 开头的文件,创建文件的时候可以在后面多加一个 . 例如:创建文件夹的时候这样写 .m2.,生成的文件夹则为 .m2

    2. 用文本编辑器打开新拷贝的 settings.xml 文件,在 <mirrors>...</mirrors> 标签中添加如下内容:

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

    这里使用了 aliyunmaven 仓库,可以加快下载依赖的速度。

    现在,我们就可以使用 maven 来管理我们的项目了。

    来一个官方的例子

    创建一个项目

    1. 新建一个文件夹,在命令行中切换到该目录并运行如下命令
    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    

    命令执行成功后你会发现 maven 在当前目录下新建了一个文件夹,文件夹的名称就是 artifactId 属性的值 my-app

    1. 切换到 my-app 目录下,你会看到如下目录结构:
    my-app
    |-- pom.xml
    `-- src
        |-- main
        |   `-- java
        |       `-- com
        |           `-- mycompany
        |               `-- app
        |                   `-- App.java
        `-- test
            `-- java
                `-- com
                    `-- mycompany
                        `-- app
                            `-- AppTest.java
    

    这是 maven 项目的标准目录结构。
    src/main/java 文件夹包含项目的源代码,src/test/java 文件夹包含着测试代码,pom.xml 文件为项目的项目对象模型(Project Object Model),简称 POM。

    POM

    pom.xml 包含了关于工程和各种配置细节的信息,Maven 使用这些信息构建工程。
    pom.xml 也包含了目标和插件。当执行一个任务或者目标时,Maven 会查找当前目录下的 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.mycompany.app</groupId>
     <artifactId>my-app</artifactId>
     <version>1.0-SNAPSHOT</version>
     <packaging>jar</packaging>
    
     <name>Maven Quick Start Archetype</name>
     <url>http://maven.apache.org</url>
    
     <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.8.2</version>
         <scope>test</scope>
       </dependency>
     </dependencies>
    </project>
    
    • 所有的 pom.xml 文件需要 project 元素和三个必须的字段:groupIdartifactIdversion
    • 在仓库中的工程标识为 groupId:artifactId:version
    • pom.xml 的根元素是 project,它有三个主要的子节点:
    节点 描述
    groupId 这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,com.mycompany.app
    artifactId 这是工程的标识。它通常是工程的名称。groupIdartifactId 一起定义了 artifact 在仓库中的位置。
    version 这是工程的版本号。在 artifact 的仓库中,它用来区分不同的版本。

    打包

    mvn package
    

    构建成功后项目根目录下会生成一个 target 文件夹,文件夹中有一个 my-app-1.0-SNAPSHOT.jar 文件,这就是项目最终生成的 jar 包。

    运行

    java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
    

    此时控制台会打印出 Hello World!

    相关文章

      网友评论

          本文标题:Maven - 软件工程管理和整合工具

          本文链接:https://www.haomeiwen.com/subject/ptmdittx.html