我有一个在 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/