有没有办法更改Jenkins Maven构建的工作目录?
Maven构建仅在当前工作目录是包含pom.xml的目录时才有效,所以我希望Maven构建在该目录中执行。
带有pom.xml的目录位于git项目的子目录中。
答案 0 :(得分:12)
创建一个目标来结帐父母。
创建目标以构建路径
它对我有用。
答案 1 :(得分:10)
不知道什么时候添加,但是对于我前面的Jenkins(Jenkins ver。1.627,每页底部),现在有一个选项来定义根pom.xml的位置(帮助消息说:< / p>
如果您的工作区在除了之外的某个位置具有顶级pom.xml 第一个模块的根目录,指定路径(相对于 模块根目录)这里,例如parent / pom.xml。如果留空,则默认为 的pom.xml
)。我遇到了同样的问题,但后来意识到答案是盯着我的脸(请注意,我没有按照Hua2308的建议打高级,可能是因为他们改变了用户界面)
答案 2 :(得分:4)
作为参考,这对我有用。在&#34; Invoke顶级Maven目标&#34;构建步骤,有一个&#34;高级...&#34;按钮。如果单击此按钮,则可以指定POM.xml文件的相对路径。这应该确保您只在子目录中构建所需的项目。
答案 3 :(得分:2)
您可以使用Maven's -f
option
-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
中使用Invoke top-level Maven targets
:
-f sources/pom.xml clean install
答案 4 :(得分:2)
我来这里是因为我描述了同样的情况,我遇到的Hudson / Jenkins版本也有同样的问题,它不允许在调用maven之前设置工作目录。
解决方法是配置一个具有所需工作目录的参数,创建一个新的命令“ mvn”以创建更改目录,然后使用所有参数调用maven的原始命令“ mvn”。
要遵循的步骤:
在项目中应注意,需要对项目进行参数化,在我的情况下,请创建参数WORKING_DIRECTORY,其值为$ {WORKSPACE} / maven,将“ maven”作为工作目录的子文件夹。 enter image description here
创建maven的“自定义”版本以修改“ mvn”命令:
cp -ip /opt/apache-maven-3.5.4 / opt / maven_custom
mv / opt / maven_custom / mvn / opt / maven_custom / mvn_original
vi / opt / maven_custom / mvn:
-内容新的mvn命令-
cd $ WORKING_DIRECTORY
/ opt / maven_custom / bin / mvn_原始的“ $ @”
-结束内容新的mvn命令-
chmod ugo + x / opt / maven_custom / mvn
在hudson / Jenking中添加新的maven_custom:
Hudson Admin->系统配置-> Maven->添加Maven
在项目中使用自定义行家
通过这些更改,maven在另一个工作目录中运行
答案 5 :(得分:1)
转到maven项目的配置,然后:
构建&gt;点击“高级”按钮&gt;选中“使用自定义工作区”&gt;设置目录
(我正在使用Jenkins版本1.508)
答案 6 :(得分:0)
我们正在使用的Jenkins是德语,所以我想猜测选项是如何翻译的。
转到项目的配置,然后转到增强的项目配置(这是第二部分)并展开它。最后一点应该是Change folder of workspace
。我想这可能就是你要找的东西。
否则,您始终可以转到Build
选项并更改pom.xml的路径
答案 7 :(得分:0)
解决方案:
cd subfolder; mvn -f ../pom.xml task
Maven并没有提供相反的选择,这意味着这个用例的合理方式,可能是因为Maven讨厌你。
答案 8 :(得分:0)
当子目录是父根的直接子目录时,可以使用mvn --projects,因为它将更改为子目录。这是一个证明(请参见最后一行):
U:\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