有没有办法改变Jenkins Maven构建的工作目录?
使用场景
有一个Maven构建,只有在当前工作目录是包含pom.xml文件的目录时才能正常工作,因此我希望Maven构建在该目录中执行。
pom.xml所在的目录位于git项目的子目录中。
有没有办法改变Jenkins Maven构建的工作目录?
有一个Maven构建,只有在当前工作目录是包含pom.xml文件的目录时才能正常工作,因此我希望Maven构建在该目录中执行。
pom.xml所在的目录位于git项目的子目录中。
创建一个目标以检出父目录。
创建一个目标以构建你的路径
对我有效。
不确定此功能是何时添加的,但对于我面前的Jenkins(根据页面底部,Jenkins ver. 1.627),现在有一个选项可以定义根pom.xml的位置(帮助消息说:
如果您的工作区中顶层pom.xml位于其他位置而不是第一个模块的根目录中,请在此处指定路径(相对于模块根目录),例如parent/pom.xml。 如果留空,则默认为pom.xml。
)。我曾经遇到同样的问题,但后来意识到答案就在我的面前(请注意,我不必像Hua2308建议的那样点击高级选项,这可能是因为他们更改了用户界面)。
以下是我使用的方法。在“调用顶级Maven目标”构建步骤中,有一个“高级…”按钮。如果您单击此按钮,可以指定POM.xml文件的相对路径。这将确保您仅在子目录中构建所需的项目。
-f
选项。-f,--file <arg> Force the use of an alternate POM file (or directory with pom.xml).
README.md
sources
|----pom.xml
|----services
| |----pom.xml
| +----src
|----webservices
| |----pom.xml
| +----src
+----....
useful
docs
Goals
:-f sources/pom.xml clean install
pom.xml
文件的目录。 - Max NanasyU:\git\ics-VCCUSTOM-422>mvn --projects icsIntegrationTest clean verify
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------< com.afklm.vccustom:icsIntegrationTest >----------------
[INFO] Building icsIntegrationTest 13.3.4-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ icsIntegrationTest ---
[INFO] Deleting U:\git\ics-VCCUSTOM-422\icsIntegrationTest\target
[INFO]
[INFO] --- buildnumber-maven-plugin:1.3:create (default) @ icsIntegrationTest ---
[INFO] ShortRevision tag detected. The value is '7'.
[INFO] Executing: cmd.exe /X /C "git rev-parse --verify --short=7 HEAD"
[INFO] Working directory: U:\git\ics-VCCUSTOM-422\icsIntegrationTest
进入您的Maven项目配置,然后:
构建 > 点击“高级”按钮 > 勾选“使用自定义工作区” > 设置目录
(我正在使用Jenkins版本1.508)
高级项目选项 > 使用自定义工作区
吗?如果是的话,根据文档所述,“这是代码检出和构建发生的目录”,这并不能解决我在子目录中设置工作目录进行构建的需求。 - Max Nanasy解决方案:
cd subfolder; mvn -f ../pom.xml task
Maven没有提供另一种方式来做到这一点,也就是说,对于这种用例来说,明显更合理的方式,可能是因为Maven讨厌你。
我们使用的Jenkins是德语版,所以我在猜测选项的翻译。
前往您的项目配置,然后进入增强项目配置(它是第二个部分)并展开它。最后一点应该是类似于“更改工作区文件夹”的东西。我想那可能是您正在寻找的。
否则,您总可以到构建
选项中更改pom.xml的路径。
更改工作区文件夹
会更改项目下载的文件夹,而不是执行Maven构建的进程的工作目录。B. 无论构建哪个pom.xml文件,工作目录都是工作区顶层目录。 - Max Nanasy