0

我正在开发一个实用程序库,该库扩展了rdf4j框架,使用它的 BOM 模块导入它,例如:

<groupId>com.example</groupId>
<artifactId>rdf4j-utils</artifactId>
<version>1.0</version>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.eclipse.rdf4j</groupId>
            <artifactId>rdf4j-bom</artifactId>
            <version>3.0.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>

    <!-- core rdf4j dependencies here -->

</dependencies>

是否可以使指定的 rdf4j 版本rdf4j-utils可用于导入模块,以便可以从 BOM 导入其他 rdf4j 模块而不指定目标版本?例如:

<dependencies>

    <dependency>
        <groupId>com.example</groupId>
        <artifactId>rdf4j-utils</artifactId>
        <version>1.0</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.rdf4j</groupId>
        <artifactId>rdf4j-repository-sparql</artifactId>
        <!-- !!! implicit rdf4j version as specified by rdf4j-utils -->
    </dependency>

</dependencies>

4

2 回答 2

2

您想要的正是通过创建物料清单来解决。因此,您可以创建自己的 BOM 来导入 rdf4j 。然后,您可以将这两个依赖项放在 dependencyManagement 部分中,并将版本定义为单个属性以创建最少的维护设置。

<properties>
  <rdf4j-utils-version>1.0</rdf4j-utils-version>
</properties>

<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.rdf4j</groupId>
        <artifactId>rdf4j-bom</artifactId>
        <version>3.0.1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.example</groupId>
        <artifactId>rdf4j-utils</artifactId>
        <version>${rdf4j-utils-version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.rdf4j</groupId>
        <artifactId>rdf4j-repository-sparql</artifactId>
        <version>${rdf4j-utils-version}</version>
      </dependency>
    </dependencies>
<dependencyManagement>

对于更完整的 BOM 示例,我发现spring-cloud-dependencies是一个很好的灵感 - 因为它很好,并且具有完整的 BOM 与父 pom 并导入许多其他 BOM。

于 2019-10-18T10:57:18.980 回答
0

不,但是您可以定义一个名称类似于<rdf4j.version>in的属性,<properties>并在不同的依赖项中使用它。

于 2019-10-18T10:53:53.520 回答