maven - 如何在 Maven 中为 scm:checkin 目标使用 basedir 和 workingDirectory 参数?
问题描述
我对 Maven 很陌生,我对 Maven SCM 插件的basedir
和参数的用途和正确用法感到困惑。workingDirectory
假设我有以下文件/文件夹结构(在 Windows 中):
C:\fruits\
├───.git\
├───apples\
│ └───pom.xml
└───oranges\
└───pom.xml
在执行 Maven 之前(通过mvn.cmd
从命令行调用),我将shell 中的当前目录C:\fruits\apples
更改为“ ”。因此,在 Maven 的术语中,“ C:\fruits\apples
”成为工作目录pom.xml
,其中包含用于项目的适当文件apples
。另一方面,在 Git 的术语中,工作目录是“ C:\fruits
”,因为那是整个 monorepo 分支被检出的地方。
在构建过程中的某个时刻,我使用 Maven SCM 插件推送一些修改。目前,在指定scm:checkin
目标时,我提供了--define workingDirectory="C:\fruits"
,但我不确定这是否是正确的路径。此外,即使我目前根本没有定义basedir
参数,该插件似乎也可以工作,这令人惊讶,因为文档将basedir
其列为唯一必需的参数。不幸的是,文档没有解释basedir
参数的目的(他们只是说它是“基本目录”,duh),也没有解释哪个“工作目录”(即,无论是在 Git 的意义上还是在 Maven 的意义上)workingDirectory
参数应该指向。
您能否向我解释一下,我应该定义 SCM 插件的哪些路径basedir
和workingDirectory
参数指向(当 Maven 正在处理我的apples
项目时)以及为什么?
解决方案
working directory
SCM 插件的参数在 Git 的上下文中,即 .git 文件夹的位置
basedir
是 pom.xml 所在位置的目录。Maven 有许多默认属性,其中之一是basedir
.
要了解有关它如何实现的更多信息,您还可以从 maven Central 查看此插件的代码或查看您的本地 maven repo。
推荐阅读
- azure-pipelines - Azure Build Pipelines - 作业以随机顺序运行
- c# - 使用边框上的子控件调整无边框 WinForm 的大小
- sql - 从sql server中的字符串中提取所有十进制值
- python - 将 Cython 头文件导入 C 代码并用 Xcode 编译
- azure - 导入状态返回消息而不是状态
- r - R匹配来自不同列表的变量
- visual-studio - 无法在 Visual Studio 中打开 DevExpress 8.2 版的设计器
- testing - Selector 的 Testcafe .parent() 在超时前偶尔会失败
- python - 将列表与列表中的多个列表进行比较
- php - Apache php:对 curl_init() 的未定义调用