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, увеличить версию, добавить снимок, зафиксировать.

Другие вопросы по тегам