之前只从github上clone过C代码。
今天clone的是sky-walking,连怎么编译都不知道,有点尴尬。
了解到了maven工具,maven的本质是含有众多plugin的framework,最基本的plugin如compile。所以maven可以用一条指令来完成一系列的工作,比如checkstyle、编译、测试、存到本地仓库、上传到远程仓库等等,比较方便。
github上不管选择什么版本的tag,给的链接都是一样的。这是因为clone的是整个仓库,所有版本只需要clone一次就行,或许这就是百科解释中“版本控制”的含义吧。所以没必要以zip的方式去下载很多个版本的压缩包,用git checkout就行。
mvn clean常常要执行,不然可能会出现symbol not find的问题。
除了maven的基本知识,对于sky-walking,官方文档提到,应先执行
git submodule init
git submodule update
然后再执行mvn clean package -Dmaven.test.skip=true
即可获取jar文件。
submodule的commit、pull等是独立的。实际上,clone任何一个含有submodule的父仓库时,默认会包含该submodule的目录,但其中还没有任何文件。如果不做这两步,那就会缺少文件导致maven报cannot find symbol的报错。以下是git对子模块的解释:
https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97