Maven经常使用命令

清理
    mvn clean

编译
    mvn compile

测试
    mvn test

打包
    mvn package

在本地Repository中安装jar
    mvn install

只打jar包
    mvn jar:jar

上传到私服
    mvn deploy

给任何目标添加maven.test.skip 属性就能跳过测试
    mvn install -Dmaven.test.skip=true
    
显示版本
    mvn -version/-v

在jetty、tomcat上运行
    mvn jetty:run
    mvn tomcat:run

    跳过测试:-Dmaven.test.skip(=true)
    指定端口:-Dmaven.tomcat.port=9090
    忽略测试失败:-Dmaven.test.failure.ignore=true

下载依赖的源码
    mvn dependency:sources

显示详细错误
    mvn -e    

验证工程是否正确,全部须要的资源是否可用
    mvn validate

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

maven的生命周期
    validate,验证工程是否正确,全部须要的资源是否可用。
    compile,编译项目的源代码。
    test-compile,编译项目测试代码。
    test,使用已编译的测试代码,测试已编译的源代码。
    package,已发布的格式,如jar,将已编译的源代码打包。
    integration-test,在集成测试能够运行的环境中处理和发布包。
    verify,运行任何检查,验证包是否有效且达到质量标准。
    install,把包安装在本地的repository中,能够被其余工程做为依赖来使用
    deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其余的开发者或者工程能够共享。
    generate-sources,产生应用须要的任何额外的源代码,如xdoclet。

依赖管理
    这种情形常常可见,当一个库 A 依赖于其余库 B. 另外一工程 C 想要使用库 A, 那么该工程一样也须要使用到库 B。
    Maven 能够避免去搜索全部须要的库资源的这种需求。经过读取工程文件(pom.xml)中的依赖项,Maven 能够找出工程之间的依赖关系。
    咱们只须要在每一个工程的 pom 文件里去定义直接的依赖关系。Maven 则会自动的来接管后续的工做。
    经过传递依赖,全部被包含的库的图形可能会快速的增加。当重复的库存在时,可能出现的情形将会持续上升。Maven 提供一些功能来控制可传递的依赖的程度。
    功能描述
        依赖调节   决定当多个手动建立的版本同时出现时,哪一个依赖版本将会被使用。 若是两个依赖版本在依赖树里的深度是同样的时候,第一个被声明的依赖将会被使用。
        依赖管理   直接的指定手动建立的某个版本被使用。例如当一个工程 C 在本身的以来管理模块包含工程 B,即 B 依赖于 A, 那么 A 便可指定在 B 被引用时所使用的版本。
        依赖范围   包含在构建过程每一个阶段的依赖。
        依赖排除   任何可传递的依赖均可以经过 "exclusion" 元素被排除在外。举例说明,A 依赖 B, B 依赖 C,所以 A 能够标记 C 为 “被排除的”。
        依赖可选   任何可传递的依赖能够被标记为可选的,经过使用 "optional" 元素。例如:A 依赖 B, B 依赖 C。所以,B 能够标记 C 为可选的, 这样 A 就能够再也不使用 C。
        依赖范围

本地仓库
    当你运行一次 Maven 构建,Maven 会自动下载全部依赖的 jar 文件到本地仓库中。它避免了每次构建时都引用存放在远程机器上的依赖文件
中央仓库
    Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量经常使用的库。
    中央仓库的关键概念:
    这个仓库由 Maven 社区管理。
    不须要配置。
    须要经过网络才能访问。
远程仓库
    若是 Maven 在中央仓库中也找不到依赖的库文件,它会中止构建过程并输出错误信息到控制台。
    为避免这种状况,Maven 提供了远程仓库的概念,它是开发人员本身定制仓库,包含了所须要的代码库或者其余工程中用到的 jar 文件

Maven 依赖搜索顺序
    当咱们执行 Maven 构建命令时,Maven 开始按照如下顺序查找依赖的库:
    步骤 1 - 在本地仓库中搜索,若是找不到,执行步骤 2,若是找到了则执行其余操做。
    步骤 2 - 在中央仓库中搜索,若是找不到,而且有一个或多个远程仓库已经设置,则执行步骤 4,若是找到了则下载到本地仓库中已被未来引用
    步骤 3 - 若是远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(没法找到依赖的文件)。
    步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,若是找到则下载到本地仓库已被未来引用,不然 Maven 将中止处理并抛出错误(没法找到依赖的文件)
相关文章
相关标签/搜索