约定优于配置
虽然我们可以通过配置来修改存放java源代码位置,修改配置文件存放位置,但是会给我们添加不必要的麻烦,使用maven的默认约定会节省我们很多时间。
maven约定如下:
源代码应该放置到:src/main/java中。
源代码的资源文件应该放置在:src/main/resources文件夹中。
测试代码应该放置到src/test/java中。
测试代码的资源文件应该放置在src/test/resources文件夹中。
maven常用命令
运行hello world maven项目中我们使用了clean install命令,之后针对一系列其他问题,我们会使用其他maven命令,先备份如下。
常用命令:
mvn clean install:清除taget下的内容,重新生成war,并同步到本地仓库
mvn clean deploy:直接把jar后者war同步到本地仓库和远程仓库,可以控制该命令的使用权限
mvn clean compile:编译源代码
mvn clean test-compile: 编译测试代码
mvn test:运行测试
mvn package打包
一般少用到的命令:
mvn eclipse:eclipse :从svn下载下来的项目运行成为eclipse的格式,生成eclipse项目文件.
mvn idea:idea:打包成为intellij项目
mvn jar:jar:只打包成jar包.
mvn test -skipping compile -skipping test-compile : -skipping灵活运行,跳过某个插件执行
mvn eclipse:clean :清除eclipse的一些系统设置,把maven的eclipse变成非eclipse项目,慎重使用
maven关于调试用命令
mvn -e:显示详细错误信息.
mvn dependency:resolve :打印出已解决依赖的列表.
mvn dependency:tree: 打印整个依赖树
maven相关插件命令
mvn:jetty:run 在安装jetty插件后,执行run,系统部署到了jetty servlet容器中,并启动web.
mvn tomcat:deploy 在安装完自动部署到tomcat的插件后, 将项目自动部署到tomcat上, 部署之前需要启动tomcat.
mvn tomcat:run 启动tomcat
maven 单元测试相关命令
mvn test :编译测试代码和运行测试代码.
mvn package -Dmaven.test.skip=true 不仅仅跳过测试运行,还跳过临时性的测试代码编译.(另一种方式是在配置文件中配置)
动态指定运行的测试用例
mvn test -Dtest = RandomGeneratorTest 只有RandomGeneratorTest 测试类得到运行
mvn test -Dtest=RandomGeneratorTest,AccountCaptchaServicetest 两个类用逗号隔开,maven只运行这两个测试类.
maven占位符配置
maven的属性,是值的占位符,类似EL表达式,比如用${},可用于pom文件任何赋值的位置。有以下分类:
env.X: 操作系统环境变量,比如${env.PATH}
project.x: pom文件中的属性,比如<project><version>1.0</version></project>,引用方式:${project.version}
setting.x: settings.xml文件中的属性,比如<settings><offline>false</offline></settings>,引用方式:${settings.offline}
Java System Properties: java.lang.System.getProperties() 中的属性,比如java.home ,引用方式:${java.home}
自定义: 在pom文件中可以: <properties><installDir>c:/apps/cargo-installs</installDir>,引用方式:${installDir}
那一切都配置完了,接下来写代码,那我们怎么在容器中运行maven 的web project项目呢?是向普通的项目一样吗?怎么调试呢?svn怎么同步maven项目呢?首先先了解一下maven仓库,下一篇maven代理仓库nexus。