Выпуск Maven: выполнять без развертывания и вызывать внешнюю оболочку script

Я использую плагин релиза maven. Проблема проста: я не хочу делать развертывание в версии: выполнить. Я действительно хочу выполнить оболочку script, которая будет выполнять развертывание для меня. Итак, у меня есть две возможности:

  • Как-то отключить цель развертывания по умолчанию из выпуска: выполнить

  • Как-то сделать release: выполните вызов exec: exec для запуска оболочки script

Вот мой pom:

<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.0</version>
    <configuration>
        <tagBase>svn://saoj-la.dyndns.org/webapp-test/tags</tagBase>
        <connectionUrl>scm:svn:svn://saoj-la.dyndns.org/webapp-test/trunk</connectionUrl>
    </configuration>
</plugin>

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>exec</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <executable>/bin/sh</executable>
        <arguments>
            <argument>run.sh</argument>
        </arguments>
    </configuration>
</plugin>

Ответ 1

Я использую плагин релиза maven. Проблема проста: я не хочу делать развертывание в версии: выполнить. Я действительно хочу выполнить оболочку script, которая будет выполнять развертывание для меня.

Мне что-то не хватает, потому что, когда я читаю это, я не вижу смысла в script... Но позвольте сказать, что я не понимаю.

Как-то отключить цель "развернуть" по умолчанию: выполните

В соответствии с документацией release:perform вы можете использовать необязательный параметр goals, чтобы указать:

Разделенный пробел список целей для выполнения при развертывании. Значение по умолчанию - deploy или deploy site-deploy, если проект имеет элемент <distributionManagement>/<site>.

Возможно, вы можете использовать install вместо deploy.

Как-то сделать релиз: выполнить вызов exec: exec для запуска оболочки script

Привяжите его к install в профиле, активированном во время выпуска. Вот один из способов сделать это:

<profile>
  <!-- Profile used when the release plugin executes. -->
  <id>release</id>
  <activation>
    <property>
      <!-- This property is automatically defined by the Maven release plugin when executing
           a release. Thus this profile will be automatically enabled when releasing -->
      <name>performRelease</name>
      <value>true</value>
    </property>
  </activation>
  <build>
    ...
  </build>
</profile>

Но, честно говоря, с вашим запросом есть что-то странное. Может быть, предоставление более подробной информации поможет.

Ответ 2

Немного поздно, но для справки:

Для вашего шага 1 вы можете отключить шаг развертывания maven, используя опцию "skip". Нажмите здесь для справки.

В командной строке вы можете вызвать что-то вроде:

mvn release:perform -Darguments="-Dmaven.deploy.skip=true"