JAVA后端拉取gitee仓库代码项目并将该工程打包成jar包

公司当前有一个系统用于导出项目,而每次导出的项目并不可以直接使用,需要手动从gitee代码仓库中获取一个模板代码然后将他们整合到一起它才是一个完整的项目,所以目前我的任务就是编写一个java程序可以自动地从gitee仓库拉取下来那个模板代码到指定地路径上去。并且我还要将这个java程序打包成jar包上传到先前创建好的私有仓库中去,这样可以在pom.xml中引入即可使用。

JGit

明确了任务目标,接下来就是要完成这个任务,在这里需要使用到JGit插件。如果你想在一个 Java 程序中使用 Git ,有一个功能齐全的 Git 库,那就是 JGit 。 JGit 是一个用 Java 写成的功能相对健全的 Git 的实现,它在 Java 社区中被广泛使用。 JGit 项目由 Eclipse 维护,它的主页在 JGit | The Eclipse Foundation 。

有很多种方式可以让 JGit 连接你的项目,并依靠它去写代码。 最简单的方式也许就是使用 Maven 。你可以通过在你的 pom.xml 文件里的 标签中增加像下面这样的片段来完成这个整合。

<dependency><groupId>org.eclipse.jgit</groupId><artifactId>org.eclipse.jgit</artifactId><version>5.0.1.201806211838-r</version>
</dependency>

注意JGit插件和jdk版本地对应关系,由于本项目中使用的java版本是jdk8,所以JGit插件使用的版本也比较低。

这样之后,再在程序中将它引入即可以使用。

import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;

JAVA程序

接下来是编写java程序,我创建了以下代码的java程序。

package org.example;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;import java.io.File;
import java.io.IOException;//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class CloneRepository {public static void main(String[] args) {}public static void Clone(String remoteUrl,String localPath,String username,String password){try {// 克隆远程仓库到本地目录System.out.println("Cloning from " + remoteUrl + " to " + localPath);Git.cloneRepository().setURI(remoteUrl).setDirectory(new File(localPath)).setCredentialsProvider(new UsernamePasswordCredentialsProvider(username, password)).call();System.out.println("Cloning completed.");} catch (GitAPIException e) {System.err.println("Exception occurred while cloning repository: " + e.getMessage());e.printStackTrace();}}
}

注意这里面的Clone函数就是本次任务的关键函数,通过该函数,给定要拉取的url,要保存的路径和gitee仓库的用户名密码,即可拉取到目标仓库的代码到指定仓库地址。

打包成jar包

直接运行mvn deploy就可以将该项目打包成jar包并上传到私人仓库中去。(maven的私人仓库地址和仓库认证如何配置就不在这里介绍。)

测试程序(如何使用)

创建了一个测试程序,在其中的pom.xml文件中引入已经打包好的jar包(引入的仓库地址配置在settings.xml中,在这里也不过多赘述。)

在程序中编写好以下代码,然后点击运行。

package org.example;
import org.example.CloneRepository;
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {public static void main(String[] args) {//gitee远程仓库地址String remoteUrl = "yourUrl";// 本地目录String localPath = "yourPath"; // 请替换为你想要克隆到的本地路径// Gitee 账号和密码String username = "yourUsername";String password = "yourPassword";CloneRepository.Clone(remoteUrl,localPath,username,password);}
}

即可看见在目标文件夹中拉取到了目标gitee仓库中的代码,这里要注意,在设置localPath的时候,所存的目标文件夹可以不存在,系统会自动创建,但是要保证所存的目标文件夹为空,否则会拉取失败。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3281439.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

git学习准备阶段

准备阶段 ubantu下载安装git sudo apt-get install git查看git版本 git -v注册用户名 git config --global user.name [name][name]填入自己的名字&#xff0c;如果没有空格的情况下&#xff0c;可以不加引号,–global是在全局下操作&#xff0c;如果没有这个参数就只是在本…

sdwan

分支互联网络解决方案 - 华为企业业务 分支互联网络解决方案 随着5G、AI、物联网等新兴技术与云紧密结合&#xff0c;企业业务智能化和云化加速。 企业分支WAN流量激增&#xff0c;传统以MPLS专线为主的广域互联网络难以支撑业务发展。SD-WAN成为应对云时代的必然选择。 SD…

2024电脑桌面能提醒的备忘录app分享

随着科技的飞速进步&#xff0c;2024年的今天&#xff0c;我们已经拥有了众多高效便捷的软件工具&#xff0c;其中&#xff0c;备忘录app更是成为了我们日常生活中不可或缺的一部分。在繁忙的工作和生活中&#xff0c;我们需要一个得力的助手来帮助我们记录重要事务&#xff0c…

【ROS 最简单教程 006/300】使用 launch 启动多个 ROS 节点

使用 launch 文件&#xff0c;可以一次性启动多个 ROS 节点 launch 文件编写的语法规则参见 &#x1f449; launch 文件编写 &#x1f49c; &#x1f49c; &#x1f49c; &#x1f49c; &#x1f49c; 简单示例如下 不使用 launch 需要启动三个命令行终端窗口&#xff0c;分别…

时常在面试中被问到的JVM问题

文章目录 JVM 和 JDK、JRE 有什么区别&#xff1f;JVM 是如何工作的&#xff1f;JVM 主要组件JVM 执行流程JVM 的工作示例 说一下类加载机制类加载器&#xff08;Class Loader&#xff09;示例 什么是双亲委派模型&#xff1f;&#xff08;Parent Delegation Model&#xff09;…

多语种语音合成数据,拓宽语音大模型边界

近期&#xff0c;一个名为 ChatTTS 的文本转语音项目爆火出圈&#xff0c;在 GitHub 上已经斩获了 28 k 的 Star 量。 作为一款专门为对话场景设计的语音生成模型&#xff0c;ChatTTS 支持英文和中文两种语言。针对对话式任务进行了优化&#xff0c;实现了自然流畅的语音合成。…

移动光猫(UNG853H)获取超级帐号和密码

1.查看光猫背部的登录地址及帐密码&#xff1b;比如我的光猫&#xff1a; http://192.168.1.1 User: user password: ****** 2.启动telnet服务&#xff0c;使用以下命令&#xff1a; http://192.168.1.1/webcmcc/telnet.html 3.使用telnet登录光猫&#xff0c;在CMD下执行&…

做微课的软件有哪些?教师专用录微课软件分享

在这个数字化教育时代&#xff0c;微课以其短小精悍、针对性强的特点&#xff0c;成为了教师们提升教学质量、促进学生自主学习的得力助手。制作高质量的微课&#xff0c;离不开一款功能强大、操作简便的录屏软件&#xff0c;今天&#xff0c;就让我们一起探索几款专为教师设计…

赢单!诸葛打造高效埋点体系,加速城商行营销效率

用户行为数据已成为银行了解客户需求、优化服务流程、提升营销效率的重要支持。某城商行作为一家具有前瞻性的金融机构&#xff0c;其现有的用户行为数据采集分析系统无法满足当下业务发展需求&#xff0c;用户数据的准确性、易用性和实效性亟待提升。 经过严格对诸葛智能埋点…

机器学习(五) -- 无监督学习(2) --降维1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;1&#xff09; --聚类2 下篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;2&#xff09; --降维2 前言 tips&#xff1a;标题前有“***”的内…

排序算法:快速排序,golang实现

目录 前言 快速排序 代码示例 1. 算法包 2. 快速排序代码 3. 模拟程序 4. 运行程序 5. 从大到小排序 快速排序的思想 快速排序的实现逻辑 1. 选择基准值 (Pivot) 2. 分区操作 (Partition) 3. 递归排序 循环次数测试 假如 10 条数据进行排序 假如 20 条数据进行…

LLM大模型:十大人工智能大模型技术介绍

十大人工智能大模型技术的简介&#xff1a; 深度学习模型 深度学习是人工智能领域中一种重要的机器学习技术&#xff0c;通过构建深度神经网络来模拟人脑的认知过程。深度学习模型能够自动提取数据的特征&#xff0c;并在海量数据中进行学习和优化&#xff0c;从而在语音识别…

【优秀python案例】基于Python的京东商城口红商品的爬虫与可视化的设计与实现

摘要&#xff1a;随着互联网的普及&#xff0c;网络购物已经成为了人们购物的首选&#xff0c;用户只需要在电商平台上进行自己喜欢的商品进行搜素&#xff0c;就可以得到成千上万条商品信息。而在购买商品时&#xff0c;商品价格就成为了用户的主要关注对象&#xff0c;而在一…

安科瑞ASJ系列智能剩余电流继电器介绍

产品概述&#xff1a; 安科瑞ASJ系列智能剩余电流继电器是一种重要的电气安全保护设备&#xff0c;‌主要用于交流50Hz、‌额定电压400V及以下的TT和TN系统配电线路中。‌该系列继电器的主要功能包括对电气线路进行接地故障保护&#xff0c;‌以防止接地故障电流引起的设备损坏…

UE4调试手段:主动崩溃与“.pdb”解析“.dmp”文件

主动崩溃 尝试了一些做法&#xff0c;发现 check(false) 对于Development配置而言&#xff0c;是有效果的&#xff0c;代码如下&#xff1a; // Called when the game starts or when spawned void AMyActor::BeginPlay() {Super::BeginPlay();check(false); // 尝试用这个来…

基于 SSM 的电器网上订购系统

基于 SSM 的电器网上订购系统 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;Spring、JSP、MyBatis工具&#xff1a;MyEclipse/IDEA、Tomcat 课题背景 近年来&#xff0c;随着Internet的迅速崛起&#xff0c;互联网已日益成为收集提供信息的最佳渠道并逐…

设计模式 - Singleton pattern 单例模式

文章目录 定义单例模式的实现构成构成UML图 单例模式的六种实现懒汉式-线程不安全懒汉式-线程安全饿汉式-线程安全双重校验锁-线程安全静态内部类实现枚举实现 总结其他设计模式文章&#xff1a;最后 定义 单例模式是一种创建型设计模式&#xff0c;它用来保证一个类只有一个实…

python做简单爬虫的一些常用组件

文章目录 前言requestjsonbs4 前言 最近一直在做零散的一次性的爬虫工作&#xff0c;基本都是用python开发的&#xff0c;整理一下python做小规模爬虫开发常用的一些工具类 request python最简单的发http请求的包&#xff0c;request.get和request.post就可以搞定绝大部分的…

【Github】Github 上commit后 contribution 绿格子不显示 | Github绿格子 | Github贡献度不显示

一、Github 消失的绿点 1、贡献值为什么没了&#xff1f; 2、选择要显示的贡献 如下配置 二、如何解决消失的绿点&#xff1f; 1、添加邮箱 确保邮箱的设置必须选择一个邮箱邮箱 2、git config 添加邮箱 设置邮箱如下&#xff1a; git config --local user.email 316434776…

使用标量函数实现 EF Core 的实用方法

一.介绍 在构建应用程序时&#xff0c;您可能使用标量函数在数据库端实现一些逻辑。在 SQL 中&#xff0c;标量函数是一种对单个值或少量输入值进行操作并始终返回单个值作为输出的函数。这些函数本质上是可重复使用的代码块&#xff0c;用于对数据执行计算或操作。 以下是标…