Как получить выпуск Maven для клонирования подмодулей git?
У меня есть проект Maven с подключенными подмодулями git. Все работает нормально до тех пор, пока я не сделаю релиз: подготовьте или выполните, чистая проверка этих целей не содержит подмодулей (или, другими словами, git клон не рекурсивный).
Я не смог найти подходящий способ настроить Maven для вызова git clone с параметром --recursive.
Я думал об использовании конфигурации поставщика scm (http://maven.apache.org/scm/ git.html) или просто для настройки плагина выпуска непосредственно в pom.xml, но не смог получить он работает.
Спасибо.
Ответы
Ответ 1
Я просто добавил следующий плагин:
<!-- This is a workaround to get submodules working with the maven release plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>initialize</phase>
<id>invoke build</id>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>build/bin/update.sh</executable>
</configuration>
</plugin>
И мой update.sh содержит:
#!/bin/bash
git submodule update --init
git submodule foreach git submodule update --init
Ответ 2
Здесь же решение, но без script:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<inherited>false</inherited> <!-- only execute these in the parent -->
<executions>
<execution>
<id>git submodule update</id>
<phase>initialize</phase>
<configuration>
<executable>git</executable>
<arguments>
<argument>submodule</argument>
<argument>update</argument>
<argument>--init</argument>
<argument>--recursive</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>