Apache Jena 3.11.0的Gradle

时间:2019-06-02 11:24:02

标签: gradle jena shadowjar

我正在尝试使用gradle构建系统创建包含最新Apache Jena 3.11的shadowjar,并使用其他Java代码创建“超级”包。为此,我在这里找到了信息:https://jena.apache.org/documentation/notes/jena-repack.html,但是我很难将其转换为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

1 个答案:

答案 0 :(得分:1)

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

对于Gradle,使用shadowJar时可通过“ mergeServiceFiles()”完成。

https://jena.apache.org/documentation/notes/jena-repack.html包含Maven阴影插件的说明。