В общем, вы должны иметь возможность установить Id {group, artifact} и версию родительского POM через Свойства системы Java или Переменные среды, но, похоже, в Maven есть ошибка, которая будет исправлена только в 4. Икс:
https://issues.apache.org/jira/browse/MNG-624
Другое решение состоит в том, чтобы делегировать включение родительского POM в ваши собственные родительские POM, на которые вы ссылаетесь в элементlativePath, и изменить содержимое цели, например. с помощью символической ссылки или команды cp.
Итак, в основном POM вы бы написали:
<parent>
<groupId>org.mycompany.project</groupId>
<artifactId>foo-artifact</artifactId>
<version>1.0.0</version>
<relativePath>./my-parent.pom</relativePath>
</parent>
А в моих родителях-дженкинсах вы бы просто добавили:
<groupId>org.mycompany.project</groupId>
<artifactId>foo-artifact</artifactId>
<version>1.0.0</version>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>1.414</version>
</parent>
Та же информация о проекте с блоком для hudson, которую вы поместили в my-parent-hudson.pom.
Нет, вы можете использовать
ln -s my-parent-jenkins.pom my-parent.pom
или
ln -s my-parent-hudson.pom my-parent.pom
для включения соответствующего родительского POM без необходимости поддерживать два разных основных файла POM для вашего проекта.
В случае, если POM не существует в месте, указанном в относительном пути, Maven будет искать POM в удаленном хранилище [1], что также является простым способом локальной перезаписи родительского POM.
[1] http://maven.apache.org/components/ref/3.3.9/maven-model/maven.html#class_parent