• Maven使用详解


    Maven使用详解

    世间万物相生相克,今年本来的目标是主要研究asp.net mvc以及windows平台相关的DI, ORM框架,突然有一天想研究一个Java EE里面相应的框架都是怎么玩的,于是研究了一下spring,后来发现spring相关的项目中,一般会使用主流的另一个框架,就是maven,相面我们从几个方面简单介绍一个这个框架,并附上详细的使用步骤,希望这篇文章可以完全自包含,可以完整的引导初学者使用maven。

     

    Maven是干什么用的

    Maven 其实是很多东西,Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

    但是简而言之,maven是把设计模式应用于构建架构的一种尝试,如下列出了maven 的大部分功能。

    -Builds

    -Documentation

    -Reporting

    -Dependencies

    -SCMs

    -Releases

    -Distribution.

    另外相对于以前的Java构建工具ant, maven更简洁,因为maven是基于约定的,就是说约定好的东西就不用配置了。Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务

    Maven的配置和基本使用

    去官网下载maven安装包,就像其他Java一样,是一个绿色的包,下载后直接解压并配置bin到path环境变量,就可以直接使用。由于maven使用Java所以测试前请检查好JAVA_HOME已经配置到相应的Java安装目录,开启控制台键入mvn –version会得到如下的结果表示配置成功。

    -------------------------------------------------------------------

    C:UsersDbg>mvn -version

    Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-1

    7+08:00)

    Maven home: C:apache-maven-3.3.1in..

    Java version: 1.7.0_25, vendor: Oracle Corporation

    Java home: C:Program FilesJavajre7

    Default locale: zh_CN, platform encoding: GBK

    OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

    -------------------------------------------------------------------

    创建第一个工程

    C:UsersDbg>mvn -B archetype:generate   -DarchetypeGroupId=org.apache.maven.archetypes   -DgroupId=com.mycompany.app   -DartifactId=my-app

    创建成功后会得到如下的目录结构

    my-app

    |-- pom.xml

    `-- src

        |-- main

        |   `-- java

        |       `-- com

        |           `-- mycompany

        |               `-- app

        |                   `-- App.java

        `-- test

            `-- java

                `-- com

                    `-- mycompany

                        `-- app

                            `-- AppTest.java

    切换到my-app所在的目录,执行如下命令编译整个项目

    C:UsersDbg>mvn compile

    结果如下:

    [INFO] ----------------------------------------------------------------------------

    [INFO] Building Maven Quick Start Archetype

    [INFO]    task-segment: [compile]

    [INFO] ----------------------------------------------------------------------------

    [INFO] artifact org.apache.maven.plugins:maven-resources-plugin:

      checking for updates from central

    [INFO] artifact org.apache.maven.plugins:maven-compiler-plugin:

      checking for updates from central

    [INFO] [resources:resources]

    [INFO] [compiler:compile]

    Compiling 1 source file to <dir>/my-app/target/classes

    [INFO] ----------------------------------------------------------------------------

    [INFO] BUILD SUCCESSFUL

    [INFO] ----------------------------------------------------------------------------

    [INFO] Total time: 3 minutes 54 seconds

    [INFO] Finished at: Fri Sep 23 15:48:34 GMT-05:00 2005

    [INFO] Final Memory: 2M/6M

    [INFO] ----------------------------------------------------------------------------

    编译并运行unit test 代码

    C:UsersDbg>mvn test

    [INFO] ----------------------------------------------------------------------------

    [INFO] Building Maven Quick Start Archetype

    [INFO]    task-segment: [test]

    [INFO] ----------------------------------------------------------------------------

    [INFO] artifact org.apache.maven.plugins:maven-surefire-plugin:

      checking for updates from central

     [INFO] [resources:resources]

    [INFO] [compiler:compile]

    [INFO] Nothing to compile - all classes are up to date

    [INFO] [resources:testResources]

    [INFO] [compiler:testCompile]

    Compiling 1 source file to C:TestMaven2 estmy-app arget est-classes

     [INFO] [surefire:test]

    [INFO] Setting reports dir: C:TestMaven2 estmy-app arget/surefire-reports

    -------------------------------------------------------

     T E S T S

    -------------------------------------------------------

    [surefire] Running com.mycompany.app.AppTest

    [surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0 sec

    Results :

    [surefire] Tests run: 1, Failures: 0, Errors: 0

    [INFO] ----------------------------------------------------------------------------

    [INFO] BUILD SUCCESSFUL

    [INFO] ----------------------------------------------------------------------------

    [INFO] Total time: 15 seconds

    [INFO] Finished at: Thu Oct 06 08:12:17 MDT 2005

    [INFO] Final Memory: 2M/8M

    [INFO] ----------------------------------------------------------------------------

    执行示例代码

    C:UsersDbg>mvn exec:java -Dexec.mainClass="com.mycompany.app.App"

    会输出’hello world!’

  • 相关阅读:
    POJ 3695 Rectangles
    POJ 2002 Squares
    linux 查看磁盘空间大小
    keymaster 快捷键管理器
    Pxloader
    as3数据类型检查写法(is/as/typeof/in/instanceof)用法介绍
    javascript的dom选择器
    javascript音频管理方案:SoundManager2
    Morris.js – 画折线图、面积图和环状图的统计图表库
    jsuri 让你方便的处理url
  • 原文地址:https://www.cnblogs.com/pugang/p/4370088.html
Copyright © 2020-2023  润新知