Извлечь файл из другого репо с помощью плагина maven-scm
У меня есть Java-приложение, которое находится в git-репо RepoA и имеет конфигурацию scm, настроенную для этого репозитория для плагина maven-release и т. Д. Я хочу получить один файл из другого RepoB (это нормально, чтобы проверить весь репо, потому что только 1 файл) и использовать его как часть этапа сборки. Как это сделать с помощью плагина maven-scm, если раздел scm уже настроен для RepoA?
Благодарю.
1 ответ
Для этой задачи вы можете использовать отдельный профиль maven.
Вот часть профиля из
pom.xml
, предполагая, что вы хотите получить файл
foo/bar.txt
из репозитория гитхаба
github-user/some-repo
:
<profile>
<id>checkout-foo-bar</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.11.2</version>
<configuration>
<connectionUrl>scm:git:git@github.com:github-user/some-repo</connectionUrl>
<includes>foo/bar.txt</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Затем запустите
mvn scm:checkout -P checkout-foo-bar
Плагин сначала извлекает все файлы из репозитория, а затем удаляет те, которые вам не нужны. Это требует дополнительного времени, особенно если репо огромно.
Я не нашел способа настроить выходной каталог, отличный от значения по умолчанию.
target/checkout
. Но, надеюсь, этот рабочий пример может стать хорошей отправной точкой для решения проблемы.