命令列表
命令参数
-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
表示测试失败导致的打包失败
,解决方法就是跳过test打包。
-Djavacpp.platform=linux-x86_64
设置javacpp.platform
属性
当使用mvn -Djavacpp.platform=linux-x86_64
构建时,您将只得到特定的平台/依赖,而没有其他平台/依赖
。这也适用于所有其他可传递的依赖项,例如opencv。
您可以尝试运行mvn -Djavacpp.platform=linux-x86_64 dependency:tree
来验证它是否有效
命令行形式(万能)
命令1:mvn package -Dmaven.test.skip=true
命令2:mvn package -DskipTests
命令3:mvn package -Dmaven.test.failure.ignore=true
命令1:不执行测试用例,也不会编译测试用例
命令2:不执行测试用例,会编译测试用例(如果编译也报错那么么就使用命令1)
命令3:忽略test的错误就算是失败了也继续构建
配置pom文件的形式
配置pom文件的形式
方法1:相当于命令3 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> 方法2:相当于命令2 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins>
配置SpringBoot的形式
方法1:不会编译测试类,同命令1 <properties> <maven.test.skip>true</maven.test.skip> </properties> 方法2:会编译测试类,同命令2 <properties> <skipTests>true</skipTests> </properties>
利用idea的形式
点击这个闪电标志,然后发现test被划掉了,再点击packge就可以了
mvn deploy 到不同的环境
准备
修改apache-maven-3.3.9\conf\settings.xml 在profiles标签中,添加如下profile <!-- 开发环境 (snapshots环境) --></span> <profile> <id>mydev</id> <properties> <repository.id>mydev</repository.id> <repository.name>myDev Repository</repository.name> <repository.url>http://admin:123456@192.168.1.101/content/repositories/snapshots/</repository.url> </properties> </profile> <!-- 正式环境(releases环境) --></span> <profile> <id>production</id> <properties> <repository.id>production</repository.id> <repository.name>Production Repository</repository.name> <repository.url>http://admin:123456@192.168.1.101/content/repositories/releases/</repository.url> </properties> </profile> <!-- 默认启用mydev环境 --> <activeProfiles> <activeProfile>mydev</activeProfile> </activeProfiles>
在项目的pom.xml里面添加 <distributionManagement> <repository> <id>${repository.id}</id> <name>${repository.name}</name> <url>${repository.url}</url> <layout>default</layout> </repository> </distributionManagement>
使用
mvn clean deploy -Pproduction 表示deploy到正式环境
mvn clean deploy 或者 mvn clean deploy -Pdev 表示deploy到开发环境
注意
改了一个模块的内容,引用它的其他模块 更新不到最新的内容,使用更改的模块的最新内容,比如新加的类 爆红
package
命令完成了项目编译、单元测试、打包功能
,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install
命令完成了项目编译、单元测试、打包功能,把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库
,但没有布署到远程maven私服仓库
deploy
命令完成了项目编译、单元测试、打包功能,把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,同时部署到远程maven私服仓库
1 先 mvn package 打包
,再 mvn install 把打好的包放到本地仓库
,其他模块就能引用
到了
2 mvn deploy 上传到远程仓库
,同时把远程的最新依赖拉到本地仓库了
上传到mvn远程仓库
同时 package 到 registry 地址
使用自定义的 .m2 文件夹中的 settings.xml 配置文件
同时把执行的命令写入到 mvn.log 文件中
mvn clean deploy -Pregistry -DskipTests -U --settings .m2/settings.xml | tee mvn.log
工作中
打包部署自测
mvn clean package -DskipTests -Pregistry
mvn clean package -DskipTests -Pregistry -Djavacpp.platform=linux-x86_64
Maven deploy配置方法详解
在Maven项目中,使用deploy命令可以将项目打包并发布到Maven仓库中。下面详细介绍Maven deploy的配置方法。
1. 配置POM文件
在Maven项目的pom.xml文件中,需要配置Maven的distributionManagement
节点。该节点的repository
子节点配置发布到的Maven仓库的地址,snapshotRepository
子节点配置发布到的快照版本的Maven仓库地址。下面是一个示例:
<distributionManagement> <repository> <id>my-repo</id> <url>https://example.com/maven-repo/releases</url> </repository> <snapshotRepository> <id>my-repo</id> <url>https://example.com/maven-repo/snapshots</url> </snapshotRepository> </distributionManagement>
2. 配置settings.xml文件
在Maven的settings.xml
文件中,需要配置Maven仓库的登录信息。打开Maven安装目录下的conf/settings.xml
文件,在其中添加<servers>
节点,并在该节点内添加Maven仓库服务器的登录信息。下面是一个示例:
<servers> <server> <id>my-repo</id> <username>my-username</username> <password>my-password</password> </server> </servers>
其中id
节点的值需要和pom.xml文件中的distributionManagement
节点中对应的id
值相同。
3. 执行deploy命令
在Maven项目目录下运行以下命令即可将项目打包并发布到Maven仓库中:
mvn clean deploy
如果不希望执行测试用例可以使用以下命令:
mvn clean deploy -DskipTests
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2022-09-06 【uni-app】自定义导航栏/标题栏
2022-09-06 微信小程序 自定义头部导航栏和导航栏背景图片 navigationStyle
2010-09-06 jQuery: 万能的选择器