maven - 使用 maven-scm 插件从另一个仓库 checkout 文件

标签 maven maven-scm

我有一个在 git repo RepoA 中的 java 应用程序,并且为这个 repo 设置了一个 scm 配置,用于 maven-release 插件等。
我想从另一个 RepoB 中获取一个文件(也可以 check out 整个 repo,因为那里只有 1 个文件)并将其用作构建步骤的一部分。
如果已经为 RepoA 设置了 scm 部分,如何使用 maven-scm 插件执行此操作?

谢谢。

最佳答案

您可以为此任务使用单独的 Maven 配置文件。
这是来自 pom.xml 的个人资料部分,假设您要获取文件 foo/bar.txt来自 github 仓库 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 中获取所有文件,然后删除不需要的文件。这需要额外的时间,尤其是在 repo 很大的情况下。
除了默认 target/checkout 我没有找到设置输出目录的方法.但希望这个工作示例可以成为解决问题的良好起点。

关于maven - 使用 maven-scm 插件从另一个仓库 checkout 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51294780/

相关文章:

maven - 无法为 git 存储库中的 Gradle 子文件夹配置 Jenkins 作业。这适用于 Maven

java.lang.NoSuchFieldError : INSTANCE in bitpay SDK 错误

maven - 为什么Maven SCM插件需要connection/developerConnection?

Maven 版本 : Prepare/Perform after Rollback incorrectly succeeds with wrong content

java - 如何防止artifactId被附加到<SCM>连接URI?

tomcat - 在 Eclipse 中,如何让正在运行的 tomcat 从依赖的 maven 项目中看到我的源代码更改?

maven - 如何将 TLD 和 Tag Lib 文件添加到 Maven 的 jar 项目中

tomcat - 没有Tomcat Manager时如何使用maven部署?

svn - 如何向需要通过 svn check out 的项目添加 Maven 依赖项?