使用maven-scm插件从另一个仓库中检出文件

时间:2018-07-11 22:02:40

标签: maven maven-scm

我在git repo RepoA中有一个Java应用程序,并为此Maven-release插件等的此repo设置了scm配置。 我想从另一个RepoB中获取一个文件(最好检查整个仓库,因为那里只有1个文件),并将其用作构建步骤的一部分。 如果已经为RepoA设置了scm部分,该如何使用maven-scm插件进行操作?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以为此任务使用单独的 maven 配置文件。
这是来自 pom.xml 的配置文件部分,假设您想从 github 存储库 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

插件首先从 repo 中获取所有文件,然后删除不需要的文件。这需要额外的时间,尤其是在存储库很大的情况下。

除了默认的 target/checkout 之外,我没有找到设置输出目录的方法。但希望这个工作示例可以成为解决问题的良好起点。