Используя maven quarkus: dev target, почему я должен получить неразрешенный dep на com.faster xml .jackson.annotation - PullRequest
1 голос
/ 06 мая 2020

Коллега разместил проект quarkus на нашем внутреннем git. Когда я клонировал репо и выполнил '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

Строка «быстрее xml .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

Дерево депов показывает:

[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 подсистема для Windows) и Ubuntu 18.04.4 LTS native.

Технология, подтвержденная выше (ie, например, beans), из которых я не добавил комментарий, предположим, что я ничего не знаю об этой конкретной технологии. Если вы думаете, что это связано с проблемой - отлично! но нужно будет держать за руку, если вам нужно, чтобы я что-то с ними сделал. Не говорите просто «да, бобы. Вам нужно лягушкой взорвать вентиляционное ядро, зависимость ретикулятора еще не исследована», потому что я просто киваю, потираю подбородок, пожимаю плечами и очень стараюсь не царапать вас. Спасибо.

Пожалуйста, скажите, что я где-то пропустил шаг!

Редактировать 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;

1 Ответ

1 голос
/ 07 мая 2020

Нет-нет, ваши хосты не настроены неправильно. Проекты Maven обычно работают "из коробки", если сами настроены правильно.

Прежде всего, пакет com.fasterxml.jackson.annotation находится не в зависимости jackson-core, а в пакете jackson-annotations.

Если вы используете Quarkus, вы получите jackson-annotations зависимость косвенно, если вы используете , например quarkus-smallrye-openapi. Но мне кажется, что класс DeriveTemplate в вашем проекте импортирует что-то из com.fasterxml.jackson.annotation, поэтому jackson-annotations следует объявить как зависимость непосредственно в вашем pom.xml.

Если это не поможет вы, вы должны разместить здесь свой pom.xml, а также раздел импорта DeriveTemplate.

Надеюсь, я не слишком сильно вентилировал конденсатор лягушки ; -)

Скорее всего, отсутствующая зависимость будет выглядеть так:

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