命令列表
命令参数
-D 传入属性参数 比如命令: mvn package -Dmaven.test.skip=true 以“-D”开头,将“maven.test.skip”的值设为“true”,就是告诉maven打包的时候跳过单元测试。同理,“mvn deploy-Dmaven.test.skip=true”代表部署项目并跳过单元测试。
-P 使用指定的Profile配置 比如项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境 profiles定义了各个环境的变量id,filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值,resources中是定义哪些目录下的文件会被配置文件中定义的变量替换。 通过maven可以实现按不同环境进行打包部署,命令为: mvn package -P dev 其中“dev“为环境的变量id,代表使用Id为“dev”的profile。
-e 显示maven运行出错的信息 -o 离线执行命令,即不去远程仓库更新包 -X 显示maven允许的debug信息 -U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次
使用 .m2/settings.xml 进行deploy mvn clean deploy -s .m2/settings.xml
更多参数使用 --help
命令查看
maven命令package、install、deploy的区别
mvn clean package
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)
等7个阶段。
mvn clean install
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install
等8个阶段。
mvn clean deploy
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy
等9个阶段。
package
命令完成了项目编译、单元测试、打包功能
,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install
命令完成了项目编译、单元测试、打包功能,把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库
,但没有布署到远程maven私服仓库
deploy
命令完成了项目编译、单元测试、打包功能,把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,同时部署到远程maven私服仓库
当我们运行install
的时候,Maven实际上是将项目生成的构件安装到了本地仓库
,即只有install了之后
,其它项目才能使用此项目生成的构件
。
关于 -D
mvn package -Dmaven.test.skip=true
在使用maven使用package打包
的时候有时候会出现如下错误:
There are test failures.
Please refer to XXX/target/surefire-reports for the individual test results
- 1
- 2
表示测试失败导致的打包失败
,解决方法就是跳过test打包。
-Djavacpp.platform=linux-x86_64
设置javacpp.platform
属性
当使用mvn -Djavacpp.platform=linux-x86_64
构建时,您将只得到特定的平台/依赖,而没有其他平台/依赖
。这也适用于所有其他可传递的依赖项,例如opencv。
您可以尝试运行mvn -Djavacpp.platform=linux-x86_64 dependency:tree
来验证它是否有效