mvn release: выполнить не удалось, поскольку файл pom не находится в корне хранилища
Я пытаюсь казнить mvn release:perform
, но команда предполагает, что файл pom находится в корне хранилища. Есть ли системное свойство или предпочтение, которое я могу установить для переопределения по умолчанию?
Призыв к mvn release:prepare
похоже, все прошло успешно, так как все артефакты выпуска находятся в целевом каталоге, а хранилище правильно помечено.
В случае, если это важно, это git-проект.
РЕДАКТИРОВАТЬ Вот что я сделал:
cd /path/to/git/root/path/to/mvn/project
mvn -DdevelopmentVersion=1.2.0-SNAPSHOT -DreleaseVersion=1.1.0 release:prepare
...enter correct passphrase and choose all default options...
mvn release:perform
И затем клонирование удаленного репо в target/checkout
каталог и после некоторого сбивания и отправки в удаленный репозиторий git происходит следующая ошибка:
[ERROR]
[ERROR] The project (/path/to/git/root/path/to/mvn/project/target/checkout/pom.xml) has 1 error
[ERROR] Non-readable POM /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml: /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml (No such file or directory)
Итак, Maven ищет файл POM в корне target/checkout
каталог, который не там, где он находится.
2 ответа
У меня такая же проблема. Добавьте это к вашей поме:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>perform</goal>
</goals>
<configuration>
<pomFileName>subdir/pom.xml</pomFileName>
</configuration>
</execution>
</executions>
</plugin>
Источник: /questions/21354706/plagin-reliza-maven-git-i-pom-ne-naverhu/21354717#21354717
Поскольку корневая помпа на самом деле не находится под контролем исходного кода, я думаю, что выпуск: подготовка и выпуск: выполнение не будут работать для вас. Я думаю, что одна из целей этих команд состоит в том, чтобы гарантировать, что выпущенный проект может быть построен (и пройден тестами) на основе того, что является контролем исходного кода, а не того, что находится на машине одного человека. Вот почему он пытается оформить заказ и восстановить. Если pom просто не находится в управлении источниками, то эта цель невозможна. Возможно, вам придется вручную выполнить шаги, которые освобождают: подготовить и выпустить: выполнить делать: удалить снимок, зафиксировать, пометить, развернуть mvn, увеличить версию, добавить снимок, зафиксировать.