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



最近,我一直在我的应用程序中使用GeoLite2城市数据库来获取使用其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上发现了这个线程,它解释了在Maven中禁用二进制文件的资源过滤的必要性。问题是,我正在使用gradle,据我所知,它没有这个资源,不应该面临这个问题。

无论如何,我试图寻找一个解决方案,并试图实现基于这个线程来解决这个问题。最后我把这个添加到build.gradle:

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

然而,这也不起作用。这似乎应该是一个简单的问题,但我还没有能够解决它,也没有找到有人有同样的问题到目前为止。任何帮助将不胜感激!

你可以试试这个(注意:我没有测试它)

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

}
}

最新更新