在实践中学习java(2) -- maven和pom.xml
一、maven是什么?
maven是一个项目管理工具,基于项目对象模型(POM project object model),即pom,可以通过一小段描述信息(配置)来管理项目的构建。
maven是个仓库。是的,所有依赖的方法或类都会放到本地maven仓库中,供本地调用。所以,先要本地安装maven,并配置setting.xml配置文件。
二、maven常用命令:
mvn compile 将类文件编译成class字节码文件,放到/target下
mvn test 执行src/main/test下的类,类名需要满足规范:Test*.java 、*Test.java、*TestCase.java
mvn clean 清理编译好的class字节码文件,即删除/target文件夹
mvn package 将程序打包成jar文件,放到target下
mvn install 将程序的jar包放到本地maven仓库。
mvn deploy 将程序的jar包放到远程maven仓库。
详细说明:package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
三、mvn test还可以按条件执行部分单元用例。
mvn test -Dtest=RandomTest 只执行 RandomTest 这个测试类.
mvn test -Dtest=RandomTest#myTest 只运行 RandomTest 类中 myTest 方法
mvn test -Dtest=RandomTest,Random2Test 可以指定多个类,逗号分隔
mvn test -Dtest=Random*Test 可以用 * 匹配多个,*和 逗号也可以结合使用。
mvn test -Dtest -DfailIfNoTests=false 如果不指定或者找不到测试类则构建失败,使用,failIfNoTests 参数控制没有测试用例不报错
四、pom是什么
POM(project object model)是Maven对一个单一项目的描述。没有POM的话,Maven是毫无用处的——POM是Maven的核心。
1、pom可以通过dependencies --dependency来获取依赖。一般,我们可以从 http://mvnrepository.com/ 网站上查询到相应依赖包的pom配置代码。
2、pom可以通过profiles--profile来区分不同环境的配置。通过-P来选择环境,如mvn test -Plishui-test