Maven的使用

目录

一、maven命令格式

二、maven常用命令1

三、maven常用命令2

四、maven使用实例

五、附录


一、maven命令格式

maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下,

1、-D代表(Properties属性)

使用命令行设置属性-D的正确方法是:

mvn -DpropertyName=propertyValue clean package
  • 如果propertyName不存在pom.xml,它将被设置。
  • 如果propertyName已经存在pom.xml,其值将被作为参数传递的值覆盖-D

要发送多个变量,请使用多个空格分隔符加-D

mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package

2、-P代表(Profiles配置文件)

也就是说在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。

3、-e 显示maven运行出错的信息;

4、-o 离线执行命令,即不去远程仓库更新包;

5、-X 显示maven允许的debug信息;

6、-U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。

二、maven常用命令1

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私服仓库
   

跳过测试阶段:

mvn package -DskipTests 会跳过测试的执行,但是不会跳过测试的编译

mvn package -Dmaven.test.skip=true 既会跳过测试的执行,也会跳过测试的编译。

三、maven常用命令2

  1. 创建maven项目:mvn archetype:generate
  2. 验证项目是否正确:mvn validate
  3. maven 打包:mvn package
  4. 只打jar包:mvn jar:jar
  5. 生成源码jar包:mvn source:jar
  6. 产生应用需要的任何额外的源代码:mvn generate-sources
  7. 编译源代码: mvn compile
  8. 编译测试代码:mvn test-compile
  9. 运行测试:mvn test
  10. 运行检查:mvn verify
  11. 清理maven项目:mvn clean
  12. 生成eclipse项目:mvn eclipse:eclipse
  13. 清理eclipse配置:mvn eclipse:clean
  14. 生成idea项目:mvn idea:idea
  15. 安装项目到本地仓库:mvn install
  16. 发布项目到远程仓库:mvn:deploy
  17. 在集成测试可以运行的环境中处理和发布包:mvn integration-test
  18. 显示maven依赖树:mvn dependency:tree
  19. 显示maven依赖列表:mvn dependency:list
  20. 下载依赖包的源码:mvn dependency:sources
  21. 安装本地jar到本地仓库:mvn install:install-file -DgroupId=packageName -DartifactId=projectName -Dversion=version -Dpackaging=jar -Dfile=path
  22. 创建maven项目:mvn archetype:create
  • 指定 group: -DgroupId=packageName
  • 指定 artifact:-DartifactId=projectName
  • 创建web项目:-DarchetypeArtifactId=maven-archetype-webapp

四、maven使用实例

dailylog-parent
|-dailylog-common
|-dailylog-web

  • 三个文件夹处在同级目录中
  • dailylog-web依赖dailylog-common
  • dailylog-parent管理dailylog-common和dailylog-web。

常见参数:

 

1. 在dailylog-parent目录运行`mvn clean install -pl org.lxp:dailylog-web -am`,结果以下是在maven-3.3.9中的试验

  • dailylog-common成功安装到本地库
  • dailylog-parent成功安装到本地库
  • dailylog-web成功安装到本地库

该命令等价于`mvn clean install -pl ../dailylog-web -am`

2. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-common -am`,结果

  • dailylog-common成功安装到本地库
  • dailylog-parent成功安装到本地库

3. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-common -amd`,结果

  • dailylog-common成功安装到本地库
  • dailylog-web成功安装到本地库

由于dailylog-parent并不依赖dailylog-common模块,故没有被安装

4. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-common,../dailylog-parent -amd`,结果

  • dailylog-common成功安装到本地库
  • dailylog-parent成功安装到本地库
  • dailylog-web成功安装到本地库

5. 在dailylog-parent目录运行`mvn clean install -N`,结果

  • dailylog-parent成功安装到本地库

-N表示不递归,那么dailylog-parent管理的子模块不会被同时安装

6. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-parent -N`,结果

  • dailylog-parent成功安装到本地库

在dailylog-parent目录运行`mvn clean install -rf ../dailylog-common`,结果

    • dailylog-common成功安装到本地库
    • dailylog-web成功安装到本地库

五、附录

Maven库:

http://repo2.maven.org/maven2/

Maven依赖查询:

http://mvnrepository.com/

Maven官网:

http://maven.apache.org/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的兔子Philip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值