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