«mvn release:perform» Maven 3.0 не поддерживает файл pom.xml, которого нет в корневом каталоге репозитория git

У меня есть вопрос о Maven, плагине maven-release, интеграции с git, pom.xml и наличии pom.xml в подкаталогах локальной копии репо, а не в корне .

Вот настройка:

  • У меня есть учетная запись github с ограниченным количеством частных репозиториев
  • Я хочу (я только учусь) использовать Maven для организации моих сборок/выпусков
  • Мне может понадобиться создать много «проектов» Maven, несколько проектов на репозиторий git
  • Для каждого проекта maven требуется «pom.xml» для определения его характеристик
  • Я не могу или, по крайней мере, неудобно помещать весь проект pom.xml файлы в корне репозитория git
  • . Таким образом, я получаю такой макет папок для проектов:
    • git_repo_root_dir
      • папка project_A
        • pom.xml
        • other_code
      • project_Bпапка
        • pom.xml
        • other_code
      • и т. д.
      • ...
  • Я могу успешно перейти в каталог git_repo_root_dir/project_A и выполнить "mvn release:prepare"
  • Я не могу выполнить этот шаг в git_repo_root_dir/project_A: "mvn release:perform"
    • Проблема, по-видимому, заключается в том, что код с тегом git успешно извлекается в git_repo_root_dir/project_A/target/checkout/project_A при подготовке к выпускной сборке, но затем после извлечения подключаемый модуль «maven-release» переходит в каталог git_repo_root_dir/project_A/target/checkout/. вместо git_repo_root_dir/project_A/target/checkout/project_A/. для выполнения фактической сборки, и нет никакого способа сказать плагину «maven-release» перейти в подкаталог специальной помеченной копии исходного кода, прежде чем пытаться возиться с pom.xml
  • ВОПРОС: есть ли способ вокруг этого? Есть ли возможность как-то указать «mvn release: Perform» для перехода в подкаталог?

Вот фактическая ошибка, которую я получаю во время этого процесса:

[INFO] --- maven-release-plugin:2.0:perform (default-cli) @ standard_parent_project ---
[INFO] Checking out the project to perform the release ...
[INFO] Executing: /bin/sh -c cd "/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target" && git clone git@github.com:clarafaction/0maven.git '/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout'
...
/* note, the pom.xml the build should go out of at this point is at
   '/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout/standard_parent_project/pom.xml'
*/
...
[INFO] [ERROR] The goal you specified requires a project to execute but
    there is no POM in this directory
    (/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout).
    Please verify you invoked Maven from the correct directory. -> [Help 1]

Спасибо.

9
задан clarafaction 21 May 2012 в 23:58
поделиться