zoukankan      html  css  js  c++  java
  • Maven详解

    原理

    • 采用远程仓库和本地仓库以及一个pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需要下载一次,避免每个应用都去拷贝jar。

    结构

    • 使用目录模板,可以使pom.xml更简洁。因为Maven2已经根据缺省目录,预定义了相关的动作,而无需人工的干预。以resources目录为例:
      • src/main/resources,负责管理项目主体的资源。在使用Maven2执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中,为以后的打包提供了方便。
      • src/test/resources,负责管理项目测试的资源。在使用Maven2执行test-compile之后,这个目录中的所有文件及子目录,会复制到target/test-classes目录中,为后续的测试做好了准备。

    生命周期

    在 Maven2 中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:

    validate,验证工程是否正确,所有需要的资源是否可用。

    verify,运行任何检查,验证包是否有效且达到质量标准。

    integration-test,在集成测试可以运行的环境中处理和发布包。

    generate-sources,产生应用需要的任何额外的源代码,如xdoclet。

    compile,编译项目的源代码。

    test-compile,编译项目测试代码。

    test,使用已编译的测试代码,测试已编译的源代码。

    package,已发布的格式,如jar,将已编译的源代码打包。

    install,把包安装在本地的repository中,可以被其他工程作为依赖来使用。

    deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

    如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvntest-compile,然后才是mvn test。当然,开发中,我们一般都不会直接操作 Maven 的。而是在 Eclipse 中使用 Maven插件,其中用的最多的命令就是 clean 、compile 、install 、deploy 等。

    依赖

    Maven 中是通过在pom.xml中添加依赖从而来引入 jar 包的。其原理是:每一个 jar 都会有独立的坐标,Maven就是通过坐标来定位到具体的 jar 的。

    就好像平面坐标系一样,通过 x 轴 和 y 轴定位一个坐标点。Maven定义了这样一组规则:世界上任何一个构件都可以使用 Maven 坐标唯一标识,Maven坐标的元素包括 groupId 、artifactId 、version 、packaging、classifier。只要我们提供正确的坐标元素,Maven 就能够找到它。

  • 相关阅读:
    C4.5算法的学习笔记
    jQuery学习笔记(二)jQuery中DOM操作
    jQuery学习笔记(四)jQuery中的动画
    jQuery学习笔记(一)jQuery选择器
    编译JDK源代码,开启Debug信息[转]
    【转】如何debug没有源代码的class文件——eclipse+jad
    【转】JAVA的内省(introspector)与反射(reflection)
    Java中访问修饰符protected的权限 [转]
    [转]我是如何设计并实现一门程序设计语言——一门函数式编程语言Lucida的诞生
    不断重构
  • 原文地址:https://www.cnblogs.com/glfcdio/p/8135232.html
Copyright © 2011-2022 走看看