【问题标题】:org.eclipse.rdf4j.rio.UnsupportedRDFormatException for Turtle formatorg.eclipse.rdf4j.rio.UnsupportedRDFormatException 用于 Turtle 格式
【发布时间】:2022-01-22 21:24:01
【问题描述】:

我在使用 RDF4J 时遇到了问题,因为我收到“org.eclipse.rdf4j.rio.UnsupportedRDFormatException: 没有识别 RDF 格式对象 Turtle”错误。 在https://stackoverflow.com/a/40920378/17731560https://stackoverflow.com/a/23364261/17731560 之后,我重新配置了我的Maven pom.xml 文件,如下所示:

        <!-- Set a compiler level -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>

        <!-- Copy project dependency -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.5.1</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <!-- exclude junit, we need runtime and system dependency only -->
                        <outputDirectory>${project.build.directory}/libs/</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

这样我的问题就解决了吗?在此先感谢,我是 Maven 新手

【问题讨论】:

  • 我也有同样的问题。对解决方案感兴趣

标签: maven exception rdf4j


【解决方案1】:

实际上无法判断这是否会解决您的问题,因为您的 pom 的 sn-p 并没有显示您如何将 RDF4J 包含到您的项目中,或者您如何运行您的项目。当然,你如何配置依赖插件对我来说看起来很可疑——我从未见过它在使用中,除非你有非常具体的要求,否则它不是你应该需要的。

您看到的错误表明无法找到 Rio Turtle 解析器。最可能的原因是您没有包含正确的依赖项。您链接到的第一个问题中提到了另一个问题,特别是关于人们在没有正确合并 SPI 注册表文件的情况下生成“胖 jar”(包含所有依赖项的所有代码的单个 jar 文件)的情况。从您的描述中不清楚哪种情况适用,但由于您是 Maven 新手,我现在假设您 没有 生产一个胖 jar(因为这不是大多数 Maven 项目所做的) .

通常,在 Java 项目中包含 RDF4J 的最简单方法是包含两个可用的 pom 依赖项之一(如 https://rdf4j.org/documentation/programming/setup/ 中所述):

<dependency>
  <groupId>org.eclipse.rdf4j</groupId>
  <artifactId>rdf4j-storage</artifactId>
  <version>3.7.4</version>
  <type>pom</type>
</dependency>

或者,如果您只需要解析器和客户端 API,而不需要全套数据库:

<dependency>
  <groupId>org.eclipse.rdf4j</groupId>
  <artifactId>rdf4j-client</artifactId>
  <version>3.7.4</version>
  <type>pom</type>
</dependency>

其中任何一个都将自动包含 rdf4j-rio-turtle 依赖项,其中包含 Turtle 解析器实现。

说了这么多,你的配置中也有这个:

            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>

您已将项目配置为使用 Java 7 (1.7),但 RDF4J 至少需要 Java 8 (1.8)。有可能它根本不起作用(即使这不是这个特定错误的原因,其他事情也会中断)。您需要升级到 Java 8 或更高版本(我们建议至少使用 Java 11 以获得最佳性能)。

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    相关资源
    最近更新 更多