我在git repo RepoA中有一个Java应用程序,并为此Maven-release插件等的此repo设置了scm配置。 我想从另一个RepoB中获取一个文件(最好检查整个仓库,因为那里只有1个文件),并将其用作构建步骤的一部分。 如果已经为RepoA设置了scm部分,该如何使用maven-scm插件进行操作?
谢谢。
答案 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
之外,我没有找到设置输出目录的方法。但希望这个工作示例可以成为解决问题的良好起点。