使用 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
,我没有找到设置输出目录的方法。但希望这个工作示例可以成为解决问题的良好起点。
我有一个 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
,我没有找到设置输出目录的方法。但希望这个工作示例可以成为解决问题的良好起点。