Maven 有没有一种方法可以通过编程方式在文件中指定pom.xml路径
在声明性管道中,我在Jenkins文件中手动指定pom.xml路径,Jenkins能够在构建时按预期找到它Maven 有没有一种方法可以通过编程方式在文件中指定pom.xml路径,maven,jenkins,jenkins-pipeline,jenkins-groovy,Maven,Jenkins,Jenkins Pipeline,Jenkins Groovy,在声明性管道中,我在Jenkins文件中手动指定pom.xml路径,Jenkins能够在构建时按预期找到它 pipeline { agent any options { timestamps() } stages { stage('Compile') { steps { withMaven(maven: 'MAVEN_HOME') {
pipeline {
agent any
options {
timestamps()
}
stages {
stage('Compile') {
steps {
withMaven(maven: 'MAVEN_HOME') {
sh 'mvn -f /Users/jo/.jenkins/workspace/DeclarativePipelineDemo/Demo/pom.xml clean install' //filepath
}
}
}
}
现在,有没有更优雅的方法告诉Jenkins直接从我的项目动态捕获
工作区/pom.xml
类路径,这样我就不需要手动指定它了?如果您的Jenkins文件位于pom.xml的同一repo中,您可以使用相对路径
当Jenkins运行管道时,它会自动将保存Jenkins文件的repo克隆到Jenkins slave
如果项目的基本目录中有pom.xml,您可以尝试
sh mvn -f pom.xml ...
如果您的文件位于pom.xml的同一repo中,则可以使用相对路径。当Jenkins运行管道时,它会自动将保存Jenkins文件的repo克隆到Jenkins slave。如果项目的基本目录中有pom.xml,您可以尝试
sh mvn-f pom.xml…
@yong,您完全正确。相对路径正常工作。如果您将答案放在答案框中,我可以将其标记为正确答案。pom文件应位于您正在使用的git repo的根目录中,因此默认情况下,无需通过-f
选项定义明确的pom文件。@khmarbaise,pom不在根目录中,我不想将其保留在root@yong,旗帜-f
的确切含义是什么?