Java -在Gradle中创建.jar时GeoLite 2数据库损坏

r1zhe5dt  于 2022-11-14  发布在  Java
关注(0)|答案(1)|浏览(245)

最近,我一直在应用程序中使用GeoLite 2 City数据库,通过用户的IP获取用户位置的信息。该数据库在我的本地计算机中运行良好,但当我使用./gradlew -Pprod clean bootJar将其编译为.jar时,在尝试访问使用该数据库的组件时,出现以下错误:

InvalidDatabaseException
Could not find a MaxMind DB metadata marker in this file (<InputStream>). Is this a valid MaxMind DB file?

搜索这个错误,我在StackOveflow上找到了this thread,它解释了在Maven中禁用二进制文件资源过滤的必要性。问题是,我使用的是gradle,据我所知,它没有这个资源,不应该面临这个问题。
无论如何,我尝试寻找一个解决方案,并尝试实现基于this thread的东西来解决这个问题。我最终将其添加到我的build中。gradle:

processResources {
    from('src/main/resources/data') {
        include '**/*.mmdb'
    }
}

不过,这也没有用,看起来这应该是一个简单的问题,但我一直无法解决,也没有找到有同样问题的人,任何帮助都将不胜感激!

dgsult0t

dgsult0t1#

您可以尝试以下操作(注意:我没有测试过)

processResources {
     filesNotMatching("**/*.mmdb") {
         
     }
 }

相关问题