MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    找不到plugin.yml的问题

    开发交流
    5
    20
    1156
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      donsora 最后由 编辑

      按照官方文档在IDEA中使用mirai插件创建的项目,在resources下创建了plugin.yml

      打包好像classes目录下并没有这个yml,运行也会报(Cannot find plugin description resource 'plugin.yml')

      4a6bfd6b-1daf-4a12-be33-4861b4b61313-image.png

      我不确定在classes/resources下的plugin.yml是否是正常现象。

      b3ef1418-8d7f-48ca-ad15-6299e2a6fc7c-image.png

      请问如何解决,是需要怎么设置打包参数吗?

      cssxsh Nambers 2 条回复 最后回复 回复 引用 1
      • NicholasLD
        NicholasLD 最后由 编辑

        同问

        1 条回复 最后回复 回复 引用 0
        • cssxsh
          cssxsh @donsora 最后由 编辑

          @donsora

          清理编译缓存
          重新编译插件

          NicholasLD D 2 条回复 最后回复 回复 引用 0
          • NicholasLD
            NicholasLD @cssxsh 最后由 编辑

            @cssxsh 请问大神,我用Resources.getResourceAsStream("mybatis-config.xml")读取mybatis的配置文件,怎么也读不到,JAR包里也有这个文件,报错

            java.io.IOException: Could not find resource mybatis-config.xml
            

            在项目junit测试里和其他项目里都正常,打包成插件就不能用了。
            735AD56D9BD674B8A19369A206831FE7.jpg

            D cssxsh 2 条回复 最后回复 回复 引用 0
            • D
              donsora @cssxsh 最后由 编辑

              @cssxsh 清理后重新编译也不行,都是找不到,现在重建项目也不行,我记得我第一次创建项目的时候可以用

              编译项目是用gradle->mirai->buildPlugin 对吧

              cssxsh 1 条回复 最后回复 回复 引用 0
              • D
                donsora @NicholasLD 最后由 编辑

                @NicholasLD hhhh我也准备加mybatis,就是编译之后找不到xml,然后发现连plugin.yml也不行,估计是编译/打包问题

                1 条回复 最后回复 回复 引用 0
                • Nambers
                  Nambers 摸鱼 @donsora 最后由 编辑

                  @donsora 你可以试一下动态提供配置: https://github.com/mamoe/mirai/blob/034e256f2f9d4a53c0721b5c8335547e82013f2b/mirai-console/docs/plugin/JVMPlugin.md#在构造器动态提供

                  D 1 条回复 最后回复 回复 引用 0
                  • cssxsh
                    cssxsh @donsora 最后由 编辑

                    @donsora

                    用 gradle->build->clean 清理

                    D 1 条回复 最后回复 回复 引用 0
                    • cssxsh
                      cssxsh @NicholasLD 最后由 编辑

                      @NicholasLD 在 找不到plugin.yml的问题 中说:

                      Resources.getResourceAsStream

                      你需要把插件的类加载器当作参数一起传入

                      1 条回复 最后回复 回复 引用 0
                      • D
                        donsora @cssxsh 最后由 编辑

                        @cssxsh
                        我是这样清理的,清理之后build目录确实没有了,重新build还是找不到plugin.yml

                        cssxsh 2 条回复 最后回复 回复 引用 0
                        • D
                          donsora @Nambers 最后由 编辑

                          @Nambers
                          我需要试试从配置读取,也就是打包之后能访问到resources下的资源文件

                          Nambers 1 条回复 最后回复 回复 引用 0
                          • Nambers
                            Nambers 摸鱼 @donsora 最后由 编辑

                            @donsora 自己读取然后动态配置方式填入(bushi

                            1 条回复 最后回复 回复 引用 0
                            • cssxsh
                              cssxsh @donsora 最后由 编辑

                              @donsora
                              没法复现

                              1 条回复 最后回复 回复 引用 0
                              • cssxsh
                                cssxsh @donsora 最后由 编辑

                                @donsora
                                你应该看看 buildPlugin 运行之后产生的 jar 里有没有 plugin.yml

                                可以通过 修改 后缀为 zip 当作压缩包打开

                                D 1 条回复 最后回复 回复 引用 0
                                • D
                                  donsora @cssxsh 最后由 编辑

                                  @cssxsh
                                  jar包里有

                                  cssxsh 1 条回复 最后回复 回复 引用 0
                                  • cssxsh
                                    cssxsh @donsora 最后由 编辑

                                    @donsora
                                    jar 有就说明编译没有问题

                                    D 1 条回复 最后回复 回复 引用 0
                                    • D
                                      donsora @cssxsh 最后由 编辑

                                      @cssxsh

                                      private JExample() {
                                              super(JvmPluginDescription.loadFromResource());
                                          }
                                      

                                      但是运行,这里就直接报错了,找不到plugin.yml

                                      cssxsh 2 条回复 最后回复 回复 引用 0
                                      • cssxsh
                                        cssxsh @donsora 最后由 编辑

                                        @donsora
                                        使用的 runConsole 进行测试吗

                                        1 条回复 最后回复 回复 引用 0
                                        • cssxsh
                                          cssxsh @donsora 最后由 cssxsh 编辑

                                          @donsora
                                          loadFromResource 是有个 pluginClassloader 参数的
                                          如果没给就会尝试从上下文获取
                                          你可以手动给一下

                                          1 条回复 最后回复 回复 引用 0
                                          • S
                                            stq957023588 最后由 编辑

                                            这个问题有解决方法了麻?

                                            1 条回复 最后回复 回复 引用 0
                                            • 1 / 1
                                            • First post
                                              Last post
                                            Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact