使用 maven-scm 插件从另一个 repo 检出文件

Checkout file from another repo using maven-scm plugin

我有一个 java 应用程序在 git 存储库 RepoA 中,并为此存储库设置了 scm 配置,用于 maven-release 插件等。 我想从另一个 RepoB 获取一个文件(检查整个 repo 也很好,因为那里只有 1 个文件)并将其用作构建步骤的一部分。 如果已经为 RepoA 设置了 scm 部分,如何使用 maven-scm 插件做到这一点?

谢谢。

您可以为此任务使用单独的 maven 配置文件。
这是来自 pom.xml 的配置文件部分,假设您要从 github 存储库 github-user/some-repo:

中获取文件 foo/bar.txt
<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,我没有找到设置输出目录的方法。但希望这个工作示例可以成为解决问题的良好起点。