Maven 有没有一种方法可以通过编程方式在文件中指定pom.xml路径

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') {

在声明性管道中,我在Jenkins文件中手动指定pom.xml路径,Jenkins能够在构建时按预期找到它

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
的确切含义是什么?