清理 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