Maven,是一种创新的软件项目管理工具,提供了一个项目对象模型(POM)文件的来管理项目的构建,目前我遇到的java项目(开发项目、自动化框架等)基本都是以maven管理项目。在使用过程中,经常要使用一些mvn命令,这里记录下常用的
mvn clean 清理项目生产的临时文件,一般是模块下的target目录
mvn compile 编译源代码,一般编译模块下的src/main/java目录
mvn package 项目打包工具,会在模块下的target目录生成jar或war等文件
mvn test 测试命令,或执行src/test/java/下junit或testng的测试用例
mvn clean test -D maven.filepath=testNg.xml 运行testNg.xml文件,需要注意一下,在pom.xml文件中,配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/testNg.xml</suiteXmlFile>
</suiteXmlFiles>
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=UTF-8</argLine>
<skipTests>false</skipTests>
</configuration>
</plugin>
mvn install 构建项目,将打包的jar/war文件复制到你的本地仓库中,供其他模块使用
mvn deploy 将打包的文件发布到远程参考,提供其他人员进行下载依赖
mvn dependency:tree 打印出项目的整个依赖树
mvn tomcat:run 在tomcat容器中运行web应用
mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用
运行指定类,test目录下的XXTest.class类
mvn clean test -P test -Dtest=XXTest -DEnvironment=test
#执行指定测试类
mvn clean test -Dtest=xxTest
mvn clean test -Dtest=xxTest,xxTest2(多个测试类以’,’分隔)
#执行指定测试类下的某个具体测试方法
mvn clean test -Dtest=xxTest#method
#执行指定测试类下的所有以testmethod开头的测试方法
mvn clean test -Dtest=xxTest#testmethod*
#执行指定测试类下的所有以*methodTest结尾的测试方法
mvn clean test -Dtest=xxTest#*methodTest
#执行指定测试类下的所有以包含methodTest的测试方法
mvn clean test -Dtest=xxTest#*methodTest*
必须指定环境,否则可能不知道运行哪个目录下的测试类,会报错
#如只运行mvn -Dtest=xxTest,会报如下错误
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
需要加条件,如只运行test下的XXTest,可以 mvn clean test -Dtest=XXTest 或者加上指定环境,如mvn clean test -P test -Dtest=XXTest
命令说明,可以看下对比
mvn clean:删除工程target下所有编译文件
mvn clean test:
除了删除工程target下的文件,还会重新编译../target/classes和../target/test-classes
mvn clean test -P test/st/prod:清理target并重新编译,指定环境运行
mvn clean test -P test -Dmaven.filepath=testng.xml -DisSend=1