Eclipse插件开发之jgit下载与更新代码

Eclipse 2024工业级部署指南:大型Java遗留系统实战配置 Eclipse并非过时的IDE,而是面向大型Java遗留系统、OSGi插件生态与RCP桌面应用等关键场景的工业级开发平台。其核心价值在于可预测的运行行为、对JDK 8~21的无感兼容、原生支持MANIFEST.MF与pom.xml多构建体系,以及在金融、电力、政务等高稳定性要求环境中的不可替代性。相比智能提示优先的现代IDE,Eclipse以低内存占用、稳定GC表现和细粒度日志诊断能力支撑百万行级老项目维护。本文聚焦Eclipse 2024-03/2024-06版本的零歧义部署——涵盖下载校验、路径权限、启 阅读详情

Eclipse插件开发之jgit下载与更新代码

                                                                                                                                                                                                           

需要依赖的插件:

org.eclipse.jgit,

org.eclipse.egit

  1. 添加git图标

需要的扩展点:org.eclipse.ui.commands

org.eclipse.ui.handlers

org.eclipse.ui.menus

rg.eclipse.ui.bindings

1.1添加命令

Id – 命令的id,通过这个id可以绑定很多内容

<extension

         point="org.eclipse.ui.commands">

      <category

            name="Sample Category"

            id="Test.commands.category">

      </category>

     

      <command

            name="Sample Command"

            categoryId="Test.commands.category"

            id="com.djyos.dide.commands.gitCommand">

      </command>

</extension>

1.2添加响应处理

commandId – 与以上的id绑定

class – 点击后相应的类

<extension

         point="org.eclipse.ui.handlers">

      <handler

            commandId="com.djyos.dide.commands.gitCommand"

            class="com.djyos.dide.ui.git.GitUpdateHandler">

      </handler>

   </extension>

1.3添加git图标菜单

commandId – 与以上的id绑定

icon – git图标

tooltip – 鼠标移动到图标时的提示

<extension

         point="org.eclipse.ui.menus">

      <menuContribution

  locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">

         <toolbar

               id="Test.toolbars.sampleToolbar">

              

            <command

                  commandId="com.djyos.dide.commands.gitCommand"

                  icon="icons/ovr16/git_update.png"

                  tooltip="更新Git上的Djyos源码"

                  id="Test.toolbars.sampleCommand">

            </command>           

         </toolbar>

      </menuContribution>

</extension>

1.4绑定快捷键

commandId – 与以上的id绑定

sequence – 快捷键序列

<extension

         point="org.eclipse.ui.bindings">

      <key

            commandId="com.djyos.dide.commands.gitCommand"

            contextId="org.eclipse.ui.contexts.window"

            sequence="M1+6"

schemeId="org.eclipse.ui.defaultAcceleratorConfiguration>

      </key>

</extension>

 

  1. 远程下载git源码

remotePath – 远程git网址

srcFile – 本地存储路径

branch – 下载的分支

CloneCommand cc = Git.cloneRepository().setURI(remotePath);

           try {

                cc.setBranch(branch).setDirectory(srcFile).call();

           } catch (InvalidRemoteException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

           } catch (TransportException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

           } catch (GitAPIException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

           }

  1. 更新本地代码

djysrcPath – 本地git路径

git.pull().call() — 更新远程代码到本地

Git git = Git.open(new File(djysrcPath + "/.git"));

     String branchName = git.getRepository().getBranch();

if (!branchName.equals("release")) {                      git.checkout().setCreateBranch(true).setName("release").call();

            git.pull().call();

          } else {

                git.pull().call();

}

  1. 获取远程信息

Branch – 需要获取的分支

FetchResult fetchResult = gitLocal.fetch().call();

TrackingRefUpdate refUpdate= fetchResult

.getTrackingRefUpdate("refs/remotes/origin/branch");

  1. 获取本地git源码版本

gitLocalFile – 本地git路径

remoteVersion – 本地git版本

File file = new File(gitLocalFile + "/FETCH_HEAD");

           BufferedReader buf = null;

           String line = null;

           String releaseMsg = null;

           if (file.exists()) {

                try {

buf = new BufferedReader(new InputStreamReader(new FileInputStream(file), "utf-8"));

                      while ((line = buf.readLine()) != null) {

                           if (line.contains("release")) {

                                 releaseMsg = line;

                                 break;

                           }

                      }

                } catch (IOException e) {

                      e.printStackTrace();

                } finally {

                      if (buf != null) {

                           try {

                                 buf.close();

                           } catch (IOException e) {

                                 e.printStackTrace();

                           }

                      }

                }

                if (releaseMsg != null) {

                      String remoteVersion = releaseMsg.split("\\s+")[0];

                      return remoteVersion;

                }

}

Eclipse Git插件全面使用指南与实战配置 gitignore支持丰富匹配语法:模式含义*.log忽略所有.log结尾文件/temp/仅忽略根目录下temp文件夹debug/**忽略debug目录及其所有子内容!白名单,即使前面忽略也保留建议结合项目类型定制规则。例如Maven项目应添加:target/! 阅读详情

相关推荐

Eclipse集成Git插件EGit完整安装与使用指南

EGit是Eclipse平台上的Git集成插件,基于纯Java实现的JGit库构建,为Java开发者提供无缝的版本控制体验。它不仅支持克隆、提交、推送、拉取等标准Git操作,还深度整合IDE环境,实现项目级版本管理的可视化与自动化。通过图形化界面,EGit显著降低Git使用门槛,实时展示工作区状态(如修改、新增、冲突文件),提升开发效率。其核心功能涵盖本地仓库初始化、远程同步、分支管理、冲突解决及提交历史浏览,并支持Team Synchronization视图进行差异比对。

weixin_42576804的博客 1408

[Java实战][仅需一步][org.eclipse.jgit]代码操作git命令的步骤...再也不用手写git命令了

其实这个库支持pull/stash/add/merge/push多种命令的…需要的可以自由摸索…访问localhost:10000/Git-Sync。本地分支git 落后于 remote分支。本地分支已被更新至最新。

学生董格 3073

jgit-4.8-jar包

JGit 是提供了一套类似 Git 命令的 Java API,可以方便地在程序中进行 git 操作 jgit-4.8.0.201706111038-r.jar

使用JGit下载代码仓库

使用JGit下载代码仓库

qq_46301671的博客 949

Java操作GitLab工具JGit 工具类

JGit是一个可以用java来对git进行操作的插件,可以通过代码连接git远程仓库,在本地建立版本库,进行拉取、提交、推送等操作。使用时添加pom依赖 <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> <version>3.7.0.201502260915-r</version> </dependency> 其他的常用操作已在代码中包含

org.eclipse.jgit-3.0.0.201306101825-r.zip

scala-amazon-queue.zip,使用amazon sqs处理amazon s3中文件的客户端代码使用amazonsqs处理amazons3中文件的客户端代码

DevOps系列文章 之 Java使用jgit管理git仓库

最近设计基于gitops新的CICD方案,需要通过java读写git仓库,这里简单记录下。JGit是一款pure java的软件包,可以读写git仓库,下面介绍基本使用。

Coder_Boy_的博客 1967

org.eclipse.jgit-4.9.0.201710071750-r.jar

JGit 是提供了一套类似 Git 命令的 Java API,可以方便地在程序中进行 git 操作

JGit基本使用

分享一个大牛的教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程​​​​​‌JGit是一个用于在Java中操作Git仓库的库,它提供了一组Java库和API,使开发人员可以在他们的Java应用程序中使用Git功能‌。JGit由Eclipse基金会开发和维护,是完全用Java实现的,没有外部依赖,因此可以轻松地与Java项目集成。JGit支持各种操作系统,包括Windows、Linux和Mac等‌。

了解➔熟悉➔掌握➔精通 1184

org.eclipse.jgit-5.13.0.202109080827-r.jar中文-英文对照文档.zip

注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: 中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·本文档为双语同时展示,一行原文、一行译文,可逐行对照,避免了原文/译文来回切换的麻烦; ·有原文可参照,不再担心翻译偏差误导; ·边学技术、边学英语。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

org.eclipse.jgit-5.10.0.202012080955-r-API文档-中文版.zip

赠送jar包:org.eclipse.jgit-5.10.0.202012080955-r.jar; 赠送原API文档:org.eclipse.jgit-5.10.0.202012080955-r-javadoc.jar; 赠送源代码:org.eclipse.jgit-5.10.0.202012080955-r-sources.jar; 赠送Maven依赖信息文件:org.eclipse.jgit-5.10.0.202012080955-r.pom; 包含翻译后的API文档:org.eclipse.jgit-5.10.0.202012080955-r-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.eclipse.jgit:org.eclipse.jgit:5.10.0.202012080955-r; 标签:eclipse、jgit、org、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

关于eclipse 3.5.0安装Git插件出错

使用Help --> Install New Software...安装插件

liu578182160的专栏 5352

2025虚幻游戏逆向工程解包尝试

2025虚幻游戏逆向工程解包指南 本文详细介绍了虚幻引擎5游戏逆向解包的完整流程,主要包括获取AES密钥、生成映射文件和导出资源三个关键步骤。作者在实际操作中遇到诸多难题:AES密钥获取工具存在加壳保护问题,映射文件生成器依赖复杂的VS编译环境,DLL注入工具的使用也存在技术门槛。通过多次尝试,作者发现部分游戏可直接搜索现成的AES密钥,而映射文件生成需要额外下载Memcury依赖库才能正常编译。文章提供了相关工具的下载链接和具体操作说明,但同时也指出每个环节都可能出现意外状况,逆向工程实际执行过程远比理论

wsdchong的博客 6149

JGit vs 命令行Git:git-plugin中的两种实现方案对比及选择指南

在Jenkins持续集成流程中,Git插件(git-plugin)提供了两种核心的Git实现方案:JGit与命令行Git。这两种方案各有优势与局限,选择适合的实现方式对提升构建效率和稳定性至关重要。本文将深入对比两种方案的特性、适用场景及配置方法,助你做出最佳选择。 ## 📌 核心功能对比:JGit与命令行Git的差异 ### 🔹 JGit:纯Java实现的轻量级方案 JGit是Eclip

gitblog_00314的博客 250

C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

大秦坑王的专栏 2977

【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第一节 lua框架的建立

魔兽世界插件实战笔记从入门到放弃的心理历程 第二节 lua框架的建立 找到魔兽世界的安装目录,找到插件的默认位置:\World of Warcraft\_retail_\Interface\AddOns,在这里建立一个文件夹,魔兽的插件都是用一个文件夹来区分的,第一课吗,就用Lesson_one吧。 下面建立的三个文件,第一个点toc文件是最重要的一个,它是魔兽客户端识别插件的一个标识符。 魔兽版本号有一个函数可以查询在WoWLua下面运行:print("当前游戏版本号:",(select(4,GetBui

qq_33075391的博客 6449

【jenkins 异常】org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id xxxxx

问题描述 前段时间遇到一个jenkins 构建失败的问题,详细堆栈如下 FATAL: Invalid id: refs/remotes/origin/origin/test^{commit} org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id: refs/remotes/origin/origin/test^{commit} at org.eclipse.jgit.lib.ObjectId.fromHexString(ObjectId.

weixin_39660224的博客 1343

实战复盘:如何用Frida脚本绕过某书APP的libmsaoaidsec.so检测(附完整Hook代码)

本文深入探讨了如何利用Frida脚本绕过某书APP通过libmsaoaidsec.so实现的反Frida检测机制。通过分析动态链接过程中的关键节点和检测模式,提供了两种实战验证的绕过方案:动态Hook关键链接器函数和静态Patch SO文件。文章还分享了进阶对抗策略和调试技巧,帮助安全研究人员有效应对现代移动安全防护挑战。

weixin_42706667的博客 218

Windows XP 下使用 Git 小记 (一) -- with JGit/EGit

Windows XP 下使用 Git 小记 (一) -- with JGit/EGit   一、安装必要客户端   1. JGit/EGit plug-in for Eclipse 3.5    a. 菜单 -&gt; Help -&gt; Install New Software -&gt; "Add" Button;    b. "Add Site"         Na...

rayleeya的专栏 223

Ansys Zemax与Speos协同设计:从HUD光学优化到驾驶环境可视化全流程解析

本文深入解析了如何利用Ansys Zemax与Speos进行协同设计,实现从HUD光学系统核心优化到驾驶环境可视化验证的全流程。文章强调了HUD设计是光学性能与视觉感知的深度耦合,通过Zemax进行精密光学设计,再利用Speos进行系统级仿真与感知模拟,最终完成从虚拟到现实的闭环验证,有效提升HUD产品的开发效率与可靠性。

weixin_29199873的博客 243

【一看就会】Autoware.universe中静态绕障路线的生成逻辑

在路径行为规划中,前期根据地图和起点终点,生成了一组连续可行的路径段序列(lanelets),然后后续路径行为规划,又会进行起始点,终止点,避障绕障路径的路径规划,并且会调用route_handler中的函数,进行中心线生成,最后生成路径,后续再给速度行为规划进行速度规划。在autoware.universe的规划中,是基于规则的规划,而其中的规则又是为了解决不同场景的。而这些场景,大部分是为了解决路上障碍物(静态、动态、行人、车辆等等)。

weixin_48386130的博客 321

Java eclipse 同步_Eclipse IDE与更快的Java发布保持同步

上周发布的Java 12并不是Oracle快速发布节奏带来的唯一副产品。 Eclipse基金会还宣布了Eclipse IDE的第三季度发布,以及75个参与项目。十多年来,该基金会每年6个月都会发布一个主要版本,与越来越多的Eclipse项目协调,这就是所谓的“release train(发布列车)”。该基金会并没有发明这个概念,但它有效地利用它向潜在用户展示开源产品可以可靠地更新,从而推广了这种方...

weixin_42280315的博客 132

【深度学习新浪潮】什么是system 1和system 2?

System 1(快速生成)指大模型直接基于输入生成响应,无需显式中间推理步骤。例如,GPT-4等模型在默认状态下通过Transformer直接输出结果,擅长快速回答简单问题或生成连贯文本,但在复杂逻辑任务中可能出错。这类模型的内部计算以向量形式隐式进行,难以处理符号推理等需要离散决策的任务。System 2(慢速推理)指模型通过生成中间token(如思维链、分步推导)或多次调用LLM进行复杂推理。

专注:太空算力、AI infra、异构调度、大模型成本工程 924

Eclipse 4.2 SR1版悄悄发布

值得惊讶的是,Eclipse 4.2 SR1版发布并没有在Eclipse.org主页或最新的活动事件中加以公布,完全是悄悄放出。查看Eclipse 4.2 SR1版的日志信息,可以看到,这一版本修正了80个Bug。而且:1. WTP从3.4.0升级到了3.4.1;2. JGit/Git升级到2.1版。下载地址:http://www.eclipse.org/downloads/

chszs的专栏 2603

CesiumForUnreal实现地形等高线效果

CesiumForUnreal实现地形等高线效果

专注GIS开发 3437

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

FlashBuilder精选插件

1.Easy Explorer:打开在eclipse中选定文件所在的目录。这是一个非常不错的插件,有了它,你就可以随时跳到你指定文件的目录了。地址:http://sourceforge.net/projects/easystruts/ 2.全屏插件Eclipse Fullscreen 是一个让 Eclipse 开发工具可以全屏方式运行的插件,全屏状态下将隐去菜单栏和状态栏。在线安装地址:h...

weixin_30696427的博客 81

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: Eclipse插件开发之新建向导
下一篇: Python实现用户登录账户
ErikChan.hk
博客等级 码龄12年 107粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值