programing

잭슨 매퍼 사용에 대한 올바른 종속성 집합

javajsp 2023. 2. 28. 23:14

잭슨 매퍼 사용에 대한 올바른 종속성 집합

저는 잭슨을 처음 만나서 연습할 때 코드를 쓰고 있었어요.새로운 버전의 잭슨 라이브러리는 Fasterxml: Jackson에서 찾을 수 있다는 것을 알고 Maven pom 파일에 다음과 같은 종속성을 추가했습니다.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.2.2</version>
</dependency>

저는 제가 이걸 사용할 수 있을 줄 알았어요.ObjectMapper직접, 하지만 많은 시간을 소비한 후, 나는 그 제품을 사용하는 것을 알게 되었습니다.ObjectMapper아래에 오래된 라이브러리를 추가해야 합니다.

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.2</version>
</dependency>
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.2</version>
</dependency>

좀 헷갈리네요.왜 그런 건지 누가 좀 말해줄래요?

<properties>
  <!-- Use the latest version whenever possible. -->
  <jackson.version>2.4.4</jackson.version>
</properties>
<dependencies>
   <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
  </dependency>
</dependencies>

오브젝트 맵퍼(Jackson Databind 패키지의 것)를 가지고 있을 경우 다음을 수행할 수 있습니다.

JsonFactory factory = objectMapper.getFactory();

출처 : https://github.com/FasterXML/jackson-core

따라서 u'r pom에 이미 있는 3개의 "fasterxml" 의존관계는 잭슨데이터바인드를 포함하고 있기 때문에 ObjectMapper에 충분합니다.

아니요, 간단히 사용할 수 있습니다.com.fasterxml.jackson.databind.ObjectMapper아마 고치는 것을 잊었을 겁니다.import- 스테이트먼트, 코드하우스에 대한 모든 참조를 삭제하면 당신은 황금입니다.

Jackson 2.x의 패키지 이름이com.fasterxml에서 1개org.codehaus2. Object Mapper만 필요하시면 Jackson 1.X도 충분히 만족하실 수 있을 것 같습니다.

몇 시간이나 걸렸어요

올바른 의존관계가 있어도 C: 아래 .m2 저장소의 com.fasterxml.jackson 폴더를 삭제한 후에만 문제가 해결되었습니다.\Users\Username.m2 및 프로젝트 갱신

수입품을 수리하는 것 외에 새로 고치다maven clean compile -U에 주의해 주세요.-U이 옵션을 사용하면 편집자가 어려움을 겪을 수 있는 새로운 종속성을 얻을 수 있습니다.Import되지 않은 클래스로 인해 컴파일이 실패해도 maven 명령어 뒤에 가져올 수 있는 옵션이 있습니다.

Maven->Intelij에서 Reimport를 하는 것만으로는 효과가 없었습니다.

언급URL : https://stackoverflow.com/questions/18429468/correct-set-of-dependencies-for-using-jackson-mapper