maven运行过程解析

本文详细解析了Maven的构建过程,重点介绍了Effective Pom的概念,它是实际构建时使用的POM,包含了项目的全部构建信息。通过`mvn help:effective-pom`命令可以查看Effective Pom,它不仅包括项目自身的配置,还继承了Super POM的设置。理解Effective Pom有助于更好地理解和调试Maven构建流程。
摘要由CSDN通过智能技术生成

管理继承属性

比如api和biz都需要某个依赖,那么在echo项目的pom.xml中声明即可,因为根据PO对象的继承关系,api和biz项目会继承echo项目的依赖,这样就可以减少一些重复的输入。


effective pom命令了解


effective pom包含了当前项目的PO对象,直到Super POM对应的PO对象中的信息。要看一个项目的effective pom,只需在项目中执行

mvn help:effective-pom

命令即可查看。maven命令的语法为

mvn [options] [goal(s)] [phase(s)]

maven允许你执行一个或者多个goals/phases。很明显这面的命令help:effective-pom并不是一个phase,那么也就是说它是一个goal。对这个goal只不过是采用了缩写的形式,其全称是这样的:

org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom

以分号为分隔符,包含了groupId,artifactId,version,goal四部分。若groupId为org.apache.maven.plugins则可以使用上述的简写形式。也就是说

mvn help:effective-pom

mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom

是等价的,都是执行了maven-help-plugin这个plugin中的effective-pom这个goal。

好了,继续回到effective pom。我们说过maven在真正构建的时候用的就是effective pom,那么说明effective pom中包含了构建的所有信息,我们以biz项目中的effective pom为例来看下effective pom长什么样子。在biz项目中执行mvn help:effective-pom命令,你会得到如下输出:

<?xml version="1.0"?>

4.0.0

org.maven

echo

1.0.0

org.maven

echo-biz

1.0.0

org.maven

echo-api

1.0.0

compile

/Users/allstarw/workspace/own-proj/misc/maven/echo/biz/src/main/java

/Users/allstarw/workspace/own-proj/misc/maven/echo/biz/src/main/scripts

/Users/allstarw/workspace/own-proj/misc/maven/echo/biz/src/test/java

/Users/allstarw/workspace/own-proj/misc/maven/echo/biz/target/classes

/Users/allstarw/workspace/own-proj/misc/maven/echo/biz/target/test-classes

/Users/allstarw/work

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值