Ответ 1
Это отлично работает, мне это нравится. Но это не работает в теге подмодуля pom.xml(...)
Это не может работать, проблема с курицей и яйцом: вы не можете получить координаты родителя для использования от родителя.
Я предполагаю, что это не большая проблема, похоже, что я могу создавать для них свойства, но со многими модулями я бы очень хотел полностью понять лучшие методы для этих проблем.
Ну, полагая, что это сработает (и, насколько мне известно, свойства не будут расширены в родительском элементе, поэтому он не будет), где бы эти свойства были добавлены? В родительском? Та же проблема, что и выше. У ребенка? Нет смысла. Короче говоря, вам нужно жестко закодировать эти значения в родительском элементе
Обратите внимание, что это не проблема для groupId
и artifactId
, поскольку они не изменяются; однако это более раздражает для version
, и я предлагаю либо использовать Maven Release Plugin, либо Версии Maven Plugin (и его versions:update-child-modules
цель).
PS: Maven 3.1 будет поддерживать родительский элемент без версии (см. MNG-624).
Похожие ответы
Почему я не могу получить координаты родителя от родителя? ОтносительныйPath должен предоставить мне доступ к родительскому pom. Таким образом, это действительно работает, если вы добавите в родительский объект groupId, artifactId и версию как свойства, а затем ссылаетесь на эти свойства для родителя в дочернем элементе. Чтобы не было дублированных значений, соответствующие жестко закодированные элементы в родительском были заменены также ссылками на свойства. Это кажется уродливым способом, но это работает...
Нет, работает НЕ, в родительском элементе (для последующей воспроизводимости) допускается замена свойства не. То, как он разработан в Maven 2.x. См. MNG-624 и миллионы потоков об этом в списке рассылки пользователей, например:
Вы спросили о лучшей практике, я ответил: hard-code все в родительском элементе. Период.