插件 org.jooq.pro:jooq-codegen-maven 或其依赖项之一无法解析

Plugin org.jooq.pro:jooq-codegen-maven or one of its dependencies could not be resolved

我正在使用以下依赖项设置 free trial of jOOQ 的商业版:

<dependency> 
    <groupId>org.jooq.pro-java-8</groupId> 
    <artifactId>jooq</artifactId> 
    <version>3.15.3</version> 
</dependency> 
<dependency> 
    <groupId>org.jooq.pro-java-8</groupId> 
    <artifactId>jooq-meta</artifactId> 
    <version>3.15.3</version> 
</dependency> 
<dependency> 
    <groupId>org.jooq.pro-java-8</groupId> 
    <artifactId>jooq-codegen</artifactId> 
    <version>3.15.3</version> 
</dependency>

以及代码生成器插件:

<plugin>
    <groupId>org.jooq.pro-java-8</groupId> 
    <artifactId>jooq-codegen-maven</artifactId>
    <version>3.15.3</version> 
</plugin>

但是,我收到以下错误:

[ERROR] Plugin org.jooq.pro-java-8:jooq-codegen-maven:3.15.3 or one of its dependencies could not be resolved: Could not find artifact org.jooq.pro-java-8:jooq-codegen-maven:jar:3.15.3 in central (https://repo.maven.apache.org/maven2)

可能是什么原因?

(注意,我问这个问题是为了在 Stack Overflow 上记录 jOOQ 商业版的特定答案,因为这是用户的常见支持请求,并且 as this is encouraged by Stack Overflow ).

无法解析商业 jOOQ 工件的最常见原因是:

Maven 中心

从 jOOQ 3.15 开始,商业版没有发布到 Maven Central,只能从 jOOQ 网站获得:https://www.jooq.org/download/versions。分发可以下载为 ZIP 文件,其中包含用于在本地存储库中发布工件的脚本(通过 mvn installmvn deploy

Maven groupId 每个版本

免费试用的 groupId 不正确。这些是每个工件的当前 Maven groupId 值,as documented also here:

  • org.jooq 开源版
  • org.jooq.pro 对于具有最新 Java 支持的商业版本(Java 17 对于 jOOQ 3.15)
  • org.jooq.pro-java-11 商业版 Java 11 支持
  • org.jooq.pro-java-8 商业版 Java 8 支持
  • org.jooq.pro-java-6 对于支持 Java 6 的商业版本(直到 jOOQ 3.14)
  • org.jooq.trial 免费试用版具有最新的 Java 支持(Java 17 for jOOQ 3.15)
  • org.jooq.trial-java-11 免费试用版 Java 11 支持
  • org.jooq.trial-java-8 免费试用版 Java 8 支持

Spring开机

Spring Boot 提供依赖于 jOOQ 开源版的启动器。如果您使用 Spring Boot 和商业版的 jOOQ,您必须确保启动器不包含开源版。

实现这一点的一种方法是将它明确地从启动程序的 Maven 依赖项中排除,as documented also in this blog post:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jooq</artifactId>
 
  <!-- Exclude the jOOQ Open Source Edition -->
  <exclusions>
    <exclusion>
      <groupId>org.jooq</groupId>
      <artifactId>jooq</artifactId>
    </exclusion>
  </exclusions>
</dependency>