Дженкинс не может разобрать POM с переменными

tl;dr: mvn clean install работает как положено, но Дженкинс не может разрешать переменные в дочерних помпах.

У нас есть проект с основным pom и несколькими sub poms. Похоже, в подпрограмме произошел сбой, поскольку переменная ${project.version} не разрешается (см. сообщение об ошибке ниже и прокрутите до конца).

Основной пом:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>group</groupId>
    <artifactId>artifact</artifactId>
    <version>1.0.0.0-SNAPSHOT</version>
    ...
</project>

Саб пом:

<parent>
    <groupId>group</groupId>
    <artifactId>artifact</artifactId>
    <version>${project.version}</version>
    <relativePath>../pom.xml</relativePath>
</parent>

mvn clean install на консоли работает без нареканий:

[INFO] Installing /path/to/jenkins/workspace/Project/pom.xml to /path/to/.m2/repository/de/project/1.0.0.0-SNAPSHOT/project-1.0.0.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
...
[INFO] PROJECT 1.0.0.0-SNAPSHOT - EAR project ........... SUCCESS [  5.038 s]
[INFO] PROJECT 1.0.0.0-SNAPSHOT - Aggregator project ........ SUCCESS [  0.156 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:03 min
[INFO] Finished at: 2016-09-20T12:58:03+02:00
[INFO] Final Memory: 104M/1088M
[INFO] ------------------------------------------------------------------------

Дженкинс не может разобрать pom и выдает следующую ошибку:

Parsing POMs
ERROR: Failed to parse POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Failure to transfer my.package:project:pom:${project.version} from http://mynexus.com/content/groups/default was cached in the local repository, resolution will not be reattempted until the update interval of nexus-default has elapsed or updates are forced. Original error: Could not transfer artifact my.package:project:pom:${project.version} from/to nexus-default (http://mynexus.com/content/groups/default): Illegal character in path at index 78: http://mynexus.com/content/groups/default/my/package/project/${project.version}/panda-${project.version}.pom and 'parent.relativePath' points at wrong local POM @ line 26, column 10

Что нужно изменить, чтобы Jenkins также мог анализировать файл pom?

связанный вопрос утверждает, что maven не сможет проанализировать свойства дочернего элемента, поскольку они не будут существовать. Журналы maven выше показывают, что это не так.

Информация выше отредактирована. Опечатки не являются причиной этой проблемы.


person michaelbahr    schedule 20.09.2016    source источник
comment
comment
В связанном ответе говорится, что maven не может проанализировать pom из подпапки. Однако здесь команда выполняется из корневой папки проекта и работает безупречно (за исключением предварительного разбора Дженкинса).   -  person michaelbahr    schedule 20.09.2016


Ответы (1)


Я исправил это, используя задание проекта Freestyle вместо задания проекта Maven. Запустите собственную команду maven в оболочке или локально, этой проблемы не было.

Аналогичная ошибка: JENKINS-23846

person atealxt    schedule 04.11.2016