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 将停止处理并抛出错误(无法找到依赖的文件)

转载于:https://my.oschina.net/u/565575/blog/1829410

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值