Извлечь файл из другого репо с помощью плагина 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. Но, надеюсь, этот рабочий пример может стать хорошей отправной точкой для решения проблемы.

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