初识Maven
Maven作为一个构建工具,不仅帮我们自动化构建,还能抽象构建过程,提供构建任务实现.他跨平台,对外提供一致的操作接口;
Maven不仅是构建工具,他还是一个依赖管理工具和项目信息管理工具.他还提供了中央仓库,能帮我们自动下载构件.
使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置.
Maven常用命令
清除产生的项目
mvn clean
编译源代码
mvn compile
清除、编译
mvn clean compile
编译测试代码
mvn test-compile
运行测试:
mvn test
打包
mvn package
本地编译打包、跳过测试
mvn clean package -DskipTests
清理 打包 跳过测试
mvn clean package -DskipTests
清理 安装 跳过测试
mvn clean install -Dmaven.test.skip=true
想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行 :
mvn install -X
发布,会将生成的JAR写到MAVEN外部库,
mvn clean package deploy -DskipTests
安装,会发布到MAVEN本地库
mvn clean package install -DskipTests
-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。
下载源码
mvn dependency:sources
生成一个空的WEB工程
mvn archetype:create -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.0.0 -DgroupId=com.cai.test -DartifactId=cai-test
生成API文档
mvn javadoc:aggregate
生成文档
mvn javadoc:jar
一体化打包
mvn -U -Dmaven.test.skip=true clean package assembly:assembly
打包,会生成TAR压缩包
mvn clean assembly:assembly -DskipTests
JETTY执行使用9999端口
mvn jetty:run -Djetty.port=9999
JETTY执行war文件
mvn jetty:run-war
关闭JETTY
mvn jetty:stop
上传JAR到maven本地库
mvn install:install-file -Dfile=alipay-sdk-java20161121110022.jar -DgroupId=com.alipay.api -DartifactId=alipay-sdk-java -Dversion=20161121110022 -Dpackaging=jar
只打jar包:
mvn jar:jar
只测试而不编译,也不测试编译:
mvn test -skipping compile -skipping test-compile -skipping 的灵活运用,当然也可以用于其他组合命令
查看当前项目已被解析的依赖:
mvn dependency:list
强制检查更新,由于快照版本的更新策略(一天更新几次、隔段时间更新一次)存在,如果想强制更新就会用到此命令
mvn clean install-U
显示版本信息 :
mvn -version/-v
显示详细错误 信息:
mvn -e
验证工程是否正确,所有需要的资源是否可用:
mvn validate
在集成测试可以运行的环境中处理和发布包:
mvn integration-test
运行任何检查,验证包是否有效且达到质量标准:
mvn verify
使用 help 插件的 describe 目标来输出 Maven Help 插件的信息:
mvn help:describe -Dplugin=help
使用Help 插件输出完整的带有参数的目标列 :
mvn help:describe -Dplugin=help -Dfull
获取单个目标的信息,设置 mojo 参数和 plugin 参数。此命令列出了Compiler 插件的compile 目标的所有信息
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull
列出所有 Maven Exec 插件可用的目标
mvn help:describe -Dplugin=exec -Dfull
看这个“有效的 (effective)”POM,它暴露了 Maven的默认设置
mvn help:effective-pom
mvn exec命令可以执行项目中的main函数
首先需要编译java工程:mvn compile 不存在参数的情况下:mvn exec:java -Dexec.mainClass=".Main" 存在参数:mvn exec:java -Dexec.mainClass=".Main" -Dexec.args="arg0 arg1 arg2" 指定运行时库:mvn exec:java -Dexec.mainClass="***.Main" -Dexec.classpathScope=runtime
打印出已解决依赖的列表
mvn dependency:resolve
打印整个依赖树
mvn dependency:tree
生成依赖关系文件
mvn dependency:tree > tree.txt