如何使用basedir和workingDirectory参数scm:在Maven中签入目标?



我是Maven的新手,我对Maven SCM Plugin的basedirworkingDirectory参数的目的和正确使用感到困惑。假设我有如下的文件/文件夹结构(在Windows中):

C:fruits
├───.git
├───apples
│   └───pom.xml
└───oranges
└───pom.xml

在执行Maven之前(通过从命令行调用mvn.cmd),我将shell中的当前目录更改为"C:fruitsapples"。因此,用Maven的话来说,";C:fruitsapples";变为工作目录,其中包含用于apples项目的适当pom.xml文件。另一方面,在Git的术语中,工作目录是"C:fruits",因为这是整个monorepo分支被检出的地方。

在构建过程中的某个时刻,我使用Maven SCM Plugin来推送一些修改。目前,在指定scm:checkin目标时,我提供了--define workingDirectory="C:fruits",但我不确定这是否是正确的路径。此外,即使我目前根本没有定义basedir参数,插件似乎也能工作,这令人惊讶,因为文档将basedir列为唯一需要的参数。不幸的是,文档并没有解释basedir参数的用途(他们只是说它是"基本目录"),也没有解释是哪个"工作目录"。(也就是说,无论是Git还是Maven)workingDirectory参数应该指向。

你能向我解释一下,我应该定义SCM插件的basedirworkingDirectory参数指向什么路径(而Maven正在我的apples项目上工作),为什么?

working directory参数的SCM插件是在Git的上下文中,即。Git文件夹的位置

basedir是存放pom.xml的目录。Maven有许多默认属性,其中之一是basedir

要了解更多关于它是如何实现的,你也可以从maven中心查看这个插件的代码,或者查看你本地的maven仓库。