我们如何 use/access/read 在我们的 java 代码中将放置在私有 gitlab 存储库中的文件内容归档
How can we use/access/read file contents of files placed in a private gitlab repository in our java code
我想 use/access/read 将文件内容(excel、属性文件等)放在我的 java 代码中的私有 gitlab 存储库中,这将创建一个使用私有 gitlab 存储库中的文件内容作为输出的 CSV 文件。
如果您的 Java 应用程序的目的是 analyze/control git 存储库,那么在 JAR 中执行 git 操作是有意义的。否则,请考虑从 CI/CD 管道或用户调用简单的 bash 脚本。
JGit
如果您的应用程序需要执行许多 git 操作,JGit is a good option. You can include the dependency in maven 或 gradle。
下面是克隆特定分支的简单代码示例:
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
try {
Git.cloneRepository()
.setURI("https://github.com/account/repo.git")
.setDirectory(new File("/path/to/target_directory"))
.setBranchesToClone(Arrays.asList("refs/heads/branch-name"))
.setBranch("refs/heads/branch-name")
.call();
} catch (GitAPIException e) {
System.err.println("Exception occurred while cloning repo.");
e.printStackTrace();
}
运行时执行
如果你不想使用JGit的学习曲线,或者不想外部依赖,你也可以使用Runtime exec
方法调用git命令.这需要在主机 OS 上安装、访问和验证 git。这是一个例子:
import java.io.*;
try {
String cmd = "git clone https://github.com/account/repo.git";
Process p = Runtime.getRuntime().exec(cmd);
}
catch(IOException e)
{
System.err.println("Exception occurred while executing command.");
e.printStackTrace();
}
其他参考资料:
我想 use/access/read 将文件内容(excel、属性文件等)放在我的 java 代码中的私有 gitlab 存储库中,这将创建一个使用私有 gitlab 存储库中的文件内容作为输出的 CSV 文件。
如果您的 Java 应用程序的目的是 analyze/control git 存储库,那么在 JAR 中执行 git 操作是有意义的。否则,请考虑从 CI/CD 管道或用户调用简单的 bash 脚本。
JGit
如果您的应用程序需要执行许多 git 操作,JGit is a good option. You can include the dependency in maven 或 gradle。
下面是克隆特定分支的简单代码示例:
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
try {
Git.cloneRepository()
.setURI("https://github.com/account/repo.git")
.setDirectory(new File("/path/to/target_directory"))
.setBranchesToClone(Arrays.asList("refs/heads/branch-name"))
.setBranch("refs/heads/branch-name")
.call();
} catch (GitAPIException e) {
System.err.println("Exception occurred while cloning repo.");
e.printStackTrace();
}
运行时执行
如果你不想使用JGit的学习曲线,或者不想外部依赖,你也可以使用Runtime exec
方法调用git命令.这需要在主机 OS 上安装、访问和验证 git。这是一个例子:
import java.io.*;
try {
String cmd = "git clone https://github.com/account/repo.git";
Process p = Runtime.getRuntime().exec(cmd);
}
catch(IOException e)
{
System.err.println("Exception occurred while executing command.");
e.printStackTrace();
}
其他参考资料: