Чтение версии pom в конвейерном задании, если pom не находится в корне проекта - PullRequest
0 голосов
/ 11 февраля 2019

Я попытался использовать readMavenPom , как показано ниже, чтобы получить версию pom, и поэтому он работает очень хорошо, поскольку файл pom.xml присутствует в корневом каталоге проекта.

pom = readMavenPom file: 'pom.xml'

Для некоторых наших проектов этот файл pom.xml не будет доступен в корне репозитория проекта, а будет доступен внутри родительского модуля, поэтому в этом случае мы модифицируем скрипт groovy, напримерследующее.

pom = readMavenPom file: 'mtree-master/pom.xml'

Возможны только две возможности: либо файл pom.xml будет представлен в корневом каталоге, либо он будет внутри родительского модуля.Так есть ли способ исключить эту настройку, которую мы делаем каждый раз?

1 Ответ

0 голосов
/ 11 февраля 2019

Я бы проверил, существует ли файл в определенном месте, с помощью fileExisits:

def pomPath = 'pom.xml'
if (!(fileExists pomPath)) {
  pomPath = 'mtree-master/pom.xml'
}
pom = readMavenPom file: pomPath

Бонус : проверка нескольких путей

def pomPaths = ['pom.xml', 'mtree-master/pom.xml']
def pomPath = ''
for (def path : pomPaths) {
  if (fileExists path) {
    pomPath = path
    break
  }
}
// check that pomPath is not empty and carry on
...