Maven 源码分析 (一)
开篇Maven 源代码下载下载地址maven source 通过git clone 然后切换到maven-3.1.1Maven 安装包(tar.gz|zip)下载地址apache-maven-3.1.1-bin.zip 将其下载。类加载框架plexus-classworlds下载地址plexus-classworlds-2.5.1代码组...
开篇
-
Maven 源代码下载
下载地址maven source 通过git clone 然后切换到maven-3.1.1
-
Maven 安装包(tar.gz|zip)
下载地址apache-maven-3.1.1-bin.zip 将其下载。
-
类加载框架plexus-classworlds
-
代码组织结构
图一
Main 函数在哪里?
我们先看看apache-maven-3.1.1下mvn脚本,源文件在mvn
看到该文件的最后
| |
可以看到这里用到了plexus-classworlds 类加载框架,启动maven的Laucher#main
源文件参考m2.conf
| |
在这里,我们可以试着通过debug代码来逐步了解。 本文的案例是在intellij里面操作的,那么我们需要在启动Laucher.main()的时候,设置部分参数;
图二
下面我来仔细看看Laucher.main()做了什么
| |
标记为1处,处理传入参数并返回退出代码,我们细致的来看下mainWithExitCode做了什么?
| |
标记1处,读m2.conf的配置文件,并进行解析。
标记2处,反射调用MavenCli.main(),去执行mvn相关的命令。
下一篇文章主要介绍plexus-classworlds是怎么来解析配置并调用指定主函数的?Maven 源码分析 (二)
Posted by samung maven
更多推荐
所有评论(0)