使用 maven quarkus:dev 目标,为什么我会在 com.fasterxml.jackson.annotation 上得到一个未解决的问题

Using maven quarkus:dev target, why would I get an unresolved dep on com.fasterxml.jackson.annotation

一位同事向我们的内部 git 发布了一个 quarkus 项目。当我克隆 repo 并执行 'mvn compile quarkus:dev' 时,我得到:

$ mvn compile quarkus:dev
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< com.fnorb.api:rest-cloudpoc >------------------
[INFO] Building rest-cloudpoc 0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rest-cloudpoc ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ rest-cloudpoc ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 30 source files to C:\Bitbucket\INT\java-rest-cloudpoc\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Bitbucket/INT/java-rest-cloudpoc/src/main/java/com/fnorb/api/rest/cloudpoc/beans/DeriveTemplate.java:[4,40] package com.fasterxml.jackson.annotation does not exist

"fasterxml.jackson.annotation" 行重复 N 次,上限为 100。

还有

的实例
[ERROR] /C:/Bitbucket/INT/java-rest-cloudpoc/src/main/java/com/fnorb/api/rest/cloudpoc/beans/ObjectType.java:[18,2] cannot find symbol
   symbol: class JsonInclude

dep 树显示:

[INFO] +- io.quarkus:quarkus-resteasy:jar:1.4.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-vertx-http:jar:1.4.2.Final:compile
....
[INFO] |  |  +- io.quarkus:quarkus-vertx-core:jar:1.4.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-netty:jar:1.4.2.Final:compile
....
[INFO] |  |  |  \- io.vertx:vertx-core:jar:3.8.5:compile
....
[INFO] |  |  |     \- com.fasterxml.jackson.core:jackson-core:jar:2.10.3:compile

这只是我的主机系统配置错误吗?在 Win10 和 Ubuntu 18.04 headless(Linux subsystem for Windows)和 Ubuntu 18.04.4 LTS native 上试过。

上面证明的技术(即,像 'beans'),我没有添加评论,假设我不了解该特定技术。如果您认为这与问题有关——太好了!但如果你需要我帮他们做点什么,就需要你帮忙。不要只说 "huh beans. You need to frog blast the vent core, the reticulator dependency hasn't been frinosticated yet",因为我只会点头、揉下巴、耸耸肩,尽量不对你嗤之以鼻。谢谢。

请告诉我哪里漏了一步!

编辑 1:请求 POM 依赖项

  <version>0.1</version>
    <properties>
      <compiler-plugin.version>3.8.1</compiler-plugin.version>
      <maven.compiler.parameters>true</maven.compiler.parameters>
      <maven.compiler.source>11</maven.compiler.source>
      <maven.compiler.target>11</maven.compiler.target>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <quarkus-plugin.version>1.4.2.Final</quarkus-plugin.version>
      <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id>
      <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
      <quarkus.platform.version>1.4.2.Final</quarkus.platform.version>
      <surefire-plugin.version>2.22.1</surefire-plugin.version>
    </properties>
    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>${quarkus.platform.group-id}</groupId>
          <artifactId>${quarkus.platform.artifact-id}</artifactId>
          <version>${quarkus.platform.version}</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-resteasy</artifactId>
      </dependency>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-junit5</artifactId>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <scope>test</scope>
      </dependency>
    </dependencies>

并从相关文件之一的导入中请求导入:

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

不,不,您的主机没有配置错误。如果 Maven 项目本身设置正确,它们通常开箱即用。

首先,com.fasterxml.jackson.annotation 包不在 jackson-core 依赖项中,而是在 jackson-annotations 包中。

如果您正在使用 Quarkus,您将间接获得 jackson-annotations 依赖关系,如果您正在使用 ,例如 quarkus-smallrye-openapi。但对我来说,你项目中的 class DeriveTemplate 似乎从 com.fasterxml.jackson.annotation 导入了一些东西,所以 jackson-annotations 应该直接在你的 pom.xml 中声明为依赖项。

如果这对您没有帮助,您应该 post 您的 pom.xml 以及 DeriveTemplate 的导入部分。

希望,我没有 放青蛙电容器 太多 ;-)

最有可能的是,缺少的依赖项如下所示:

<dependency>
    <groupId>com.fasterxml</groupId>
    <artifactId>jackson-annotations<artifactId>
    <version>${your-desired-jackson-version}</version>
</dependency>