maven常用命令:
mvn -v:查看maven版本
mvn compile :编译,将Java 源程序编译成
class
字节码文件(一般编译模块下的src/main/java目录)
mvn test -compile :编译测试代码
mvn test : 运行应用程序中的单元测试(执行src/test/java/下junit的测试用例)
mvn site : 生成项目相关信息的网站
mvn clean :清除目标目录中(target目录)的生成结果(将以前编译得到的旧的
class
字节码文件删除
)
mvn package : 打包(target目录生成jar或war等文件)
mvn install :在本地 Repository 中安装 jar(执行之前会先执行mvn package)
mvn deploy:将打包的文件发布到远程参考,提供其他人员进行下载依赖
mvn eclipse:eclipse :生成 Eclipse 项目文件
mvn -Dmaven.test.skip=true : 忽略测试文档编译
mvn dependency:list 显示所有已经解析的所有依赖
mvn dependency:tree 以目录树的形式展现依赖, 最高层为一层依赖 其次二层依赖 三层依赖....
mvn dependency:analyze 第一部分显示 已经使用但是未显示依赖的的 第二部分显示项目未使用的但是依赖的
命令参数
上面列举的只是比较通用的命令,其实很多命令都可以携带参数以执行更精准的任务。
Maven命令可携带的参数类型如下:
1. -D 传入属性参数
比如命令:
mvn package -Dmaven.test.skip=true
以“-D”开头,将“maven.test.skip”的值设为“true”,就是告诉maven打包的时候跳过单元测试。同理,“mvn deploy-Dmaven.test.skip=true”代表部署项目并跳过单元测试。
2. -P 使用指定的Profile配置
比如项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境,在pom.xml中的配置如下:
<profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>qa</id> <properties> <env>qa</env> </properties> </profile> <profile> <id>pre</id> <properties> <env>pre</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> ...... <build> <filters> <filter>config/${env}.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> ...... </build>
profiles定义了各个环境的变量id,filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值,resources中是定义哪些目录下的文件会被配置文件中定义的变量替换。
通过maven可以实现按不同环境进行打包部署,命令为:
mvn package -P dev
其中“dev“为环境的变量id,代表使用Id为“dev”的profile。