当前位置: 首页 > wzjs >正文

wordpress 访问优化师助理

wordpress 访问,优化师助理,视频音乐网站怎样建设,摄影设计说明500字原文链接:Minecraft Fabric - java.lang.NoClassDefFoundError HttpUriRequest 0.引言 在开发Fabric插件时难免需要引用外部库,如http客户端,websocket客户端之类。在IDEA内构建插件一切正常,也开启项目内的服务器进行测试&#…

原文链接:Minecraft Fabric - java.lang.NoClassDefFoundError HttpUriRequest

0.引言

在开发Fabric插件时难免需要引用外部库,如http客户端,websocket客户端之类。在IDEA内构建插件一切正常,也开启项目内的服务器进行测试,插件也能正常实现功能。于是就直接将构建后的插件丢给服主(帮一个在玩的服务器写的聊天互通插件)。但没一会就一堆消息发来说服务器一启动就会崩溃,我非常奇怪,明明在我电脑上能正常运行,为啥到其他电脑上就不行了??

后面一检查问题:java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest

欸,很明显是缺少了HttpClient这个库,于是在网上查了很久。不得不吐槽一下国内Fabric模组开发环境,就不说有没有人去写模组了,毕竟闷声发大财的大佬挺多。但真的很少人去发Fabric相关的文章,就本文所提的Fabric缺库这个问题根本查不到,都是一些让引入依赖项,或者与Fabric无关的解决方法。那让我们看看怎么解决这个问题吧。

1. 解决方案

本方案适用于Gradle,Maven没用过请自行寻找解决方案。(毕竟官方的项目构建器默认用的Gradle)。先直接给出解决方法,然后再来说说为什么用Shadow Gradle这类Gradle插件不行。

你需要前往 build.gradledependencies 块中,使用 include (这个是Fabric Loom的独有方法,晚上依然查不到)方法添加包名。在构建时就会自动下载指定包并在构建时一并嵌入。

可以看到除了httpclient库,还引用了slf4j库。Apache组件普遍依赖commons-logging,我们可以将commons-logging重定向并使用slf4j输出日志。

我们可以用 jar tf xxx.jar查看打包后的jar结构,可以看到我们需要的依赖库也被打包进插件中了

包名不知道写什么?这一部分可以完全借助AI,例如:

提示词:
我开发的Fabric插件代码中引用了这些包
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
运行时:java.lang.NoClassDefFoundError: org/apache/http/HttpRequest
应该如何在 build.gradle的dependencies块中用include方法补全缺失包?

Q: 为什么不是用implementation而是include

A:
implementation
- 仅声明编译和运行时依赖
- 不会自动将依赖库打包到你的最终模组 JAR 文件中
- 适用于 Minecraft/Fabric API 这种已经由游戏本身提供的依赖

include
- 是 Fabric Loom 提供的特殊方法
- 会强制将依赖库打包到你的模组 JAR 中
- 适用于需要随模组分发的第三方库

2. 为什么 Shadow Gradle 不行?

Shadow Jar 是一个用于创建包含所有依赖项的可执行 JAR 文件的 Gradle 插件。它的主要目的是将项目的所有依赖项(包括传递依赖)合并到一个独立的可执行 JAR 文件中,以简化应用程序的部署和分发。

但是!如果我们用这个插件来打包Fabric插件,他会不仅会把项目中的所有依赖项打包进jar,而且还会破坏掉Fabric插件结构,使得无法被Fabric Loader加载。

通过上面的手动指定依赖项的方式打包插件,最终大小仅1.1MB

而通过 Shadow Gradle打包的插件,大小达到97MB,打开包查看发现塞了很多无关的东西。

http://www.dtcms.com/wzjs/499207.html

相关文章:

  • 响应式网站代码推广网站免费
  • 贵阳培训网站建设企业查询软件
  • 个人做网站可以吗免费招收手游代理
  • 建设英文品牌网站百度移动
  • 网站建设要用什么软件天津seo博客
  • 网站 地图导航代码如何分步骤开展seo工作
  • 嘉兴网站制作怎么添加按钮微博营销策略
  • dede仿站电商运营一天都干啥
  • 杭州网站推广营销windows优化大师官方下载
  • 讯杰网站建设怎么做好网络销售
  • 建设银行门户网站平台推广方式
  • mip网站百度论坛首页官网
  • 华龙网重庆新闻seo智能优化
  • 微信怎么做一些微网站市场推广策略 包括哪些
  • 上海企业网站建设以下属于网站seo的内容是
  • 建设部国家标准网站网络推广优化网站
  • 用jsp做的汽车网站日本比分预测最新分析
  • 钢铁网站哪家做的好新闻20条摘抄大全
  • 可以做的电影网站电商网站策划
  • 用qq邮箱做网站沧州网站建设优化公司
  • 做网站什么程序好网盟推广是什么意思
  • 查询个人信息的网站近期国内新闻热点事件
  • 网站建设客户需要提供什么科目百度推广代理公司广州
  • 淘宝基地网站怎么做绍兴seo管理
  • 免费建站源码企业营销策划案例
  • 免费全能空间天津优化代理
  • 深圳设计公司有多少家西安百度推广优化
  • 什么网站能接工地做竞价排名深度解析
  • 做简单手机网站多少钱呀推广赚钱的微信小程序
  • 深圳石岩建网站申请网站怎样申请