带有ApacheJena 3.11.0的Gradle

带有ApacheJena 3.11.0的Gradle,gradle,jena,shadowjar,Gradle,Jena,Shadowjar,我正在尝试创建一个shadowjar,其中包括最新的ApacheJena3.11,使用gradle构建系统和额外的java代码来创建一个“uber”包。为此,我在这里找到了一些信息:但是我很难将其转换为gradle设置 有人知道如何做到这一点吗 5 actionable tasks: 1 executed, 4 up-to-date Creating memory store SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBind

我正在尝试创建一个shadowjar,其中包括最新的ApacheJena3.11,使用gradle构建系统和额外的java代码来创建一个“uber”包。为此,我在这里找到了一些信息:但是我很难将其转换为gradle设置

有人知道如何做到这一点吗

5 actionable tasks: 1 executed, 4 up-to-date
Creating memory store
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.ExceptionInInitializerError
    at nl.wur.ssb.RDFSimpleCon.RDFSimpleCon.createEmptyStore(RDFSimpleCon.java:150)
    at nl.wur.ssb.RDFSimpleCon.RDFSimpleCon.<init>(RDFSimpleCon.java:62)
    at nl.wur.ssb.RDFSimpleCon.RDFSimpleCon.<init>(RDFSimpleCon.java:159)
    at nl.wur.ssb.RDFSimpleCon.Test.main(Test.java:7)
Caused by: java.lang.NullPointerException
    at org.apache.jena.tdb.sys.EnvTDB.processGlobalSystemProperties(EnvTDB.java:33)
    at org.apache.jena.tdb.TDB.init(TDB.java:252)
    at org.apache.jena.tdb.sys.InitTDB.start(InitTDB.java:29)
    at org.apache.jena.sys.JenaSystem.lambda$init$2(JenaSystem.java:116)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.apache.jena.sys.JenaSystem.forEach(JenaSystem.java:191)
    at org.apache.jena.sys.JenaSystem.forEach(JenaSystem.java:168)
    at org.apache.jena.sys.JenaSystem.init(JenaSystem.java:114)
    at org.apache.jena.tdb.TDBFactory.<clinit>(TDBFactory.java:40)
    ... 4 more
5项可执行任务:1项已执行,4项最新
创建内存存储
SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。
SLF4J:默认为无操作(NOP)记录器实现
SLF4J:参见http://www.slf4j.org/codes.html#StaticLoggerBinder 详情请参阅。
线程“main”java.lang.ExceptionInInitializeError中出现异常
位于nl.wur.ssb.RDFSimpleCon.RDFSimpleCon.createEmptyStore(RDFSimpleCon.java:150)
位于nl.wur.ssb.RDFSimpleCon.RDFSimpleCon.(RDFSimpleCon.java:62)
位于nl.wur.ssb.RDFSimpleCon.RDFSimpleCon.(RDFSimpleCon.java:159)
位于nl.wur.ssb.RDFSimpleCon.Test.main(Test.java:7)
原因:java.lang.NullPointerException
位于org.apache.jena.tdb.sys.EnvTDB.processGlobalSystemProperties(EnvTDB.java:33)
位于org.apache.jena.tdb.tdb.init(tdb.java:252)
位于org.apache.jena.tdb.sys.InitTDB.start(InitTDB.java:29)
位于org.apache.jena.sys.jenaystem.lambda$init$2(jenaystem.java:116)
forEach(ArrayList.java:1257)
位于org.apache.jena.sys.jenaystem.forEach(jenaystem.java:191)
位于org.apache.jena.sys.jenaystem.forEach(jenaystem.java:168)
位于org.apache.jena.sys.jenaystem.init(jenaystem.java:114)
位于org.apache.jena.tdb.TDBFactory(TDBFactory.java:40)
... 4更多

创建重新打包的jar文件时,需要合并Java ServiceLoader文件

对于Gradle,这是在使用
shadowJar
时通过“mergeServiceFiles()”完成的


有Maven shade插件的说明。

apache库提供了NPE,从源代码来看,它似乎没有创建上下文。你能提供更多的信息吗?对于gradle shadowJar,使用“mergeServiceFiles()”刚才在Jena的主要网站上注意到版本12可用,与mergeServiceFiles()结合使用就成功了@如果你把你的解决方案作为一个答案发布,我可以正确地接受它。谢谢-现在它被确认了,我也会把它添加到Jena的“重新打包”文档中。