`maven compile` не может найти пакет, когда он установлен в ~ / .m2 - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь научиться строить проект maven.это мой ./src/main/java/Hello.java

import com.google.code.gson.*;

public class Hello{
  public static void main(String[] args) {
    System.out.println("Hello world");
  }
}

Этот файл на самом деле ничего не делает, я просто хочу узнать, как импортировать третью библиотеку.это мой ./pom.xml

<dependency>
   <groupId>com.google.code.gson</groupId>
   <artifactId>gson</artifactId>
   <version>2.8.5</version>
</dependency>

Итак, я пытаюсь выполнить mvn compile.

Но есть ошибка:

package com.google.code.gson does not exist

Но в моем ~/.m2/repository

$ tree -L 3 ~/.m2/repository/com/google/code/gson
/Users/apple/.m2/repository/com/google/code/gson
├── 2.8.5
│   ├── gson-2.8.5.jar.lastUpdated
│   └── gson-2.8.5.pom.lastUpdated
├── gson
│   └── 2.8.5
│       ├── _remote.repositories
│       ├── gson-2.8.5.jar
│       ├── gson-2.8.5.jar.sha1
│       ├── gson-2.8.5.pom
│       └── gson-2.8.5.pom.sha1

Мне кажется, что mvn не добавляет ~/.m2/repository в мой путь к классам. Как это исправить?

$ mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /Users/apple/Downloads/apache-maven-3.6.0
Java version: 10, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
Default locale: en_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"

1 Ответ

0 голосов
/ 28 февраля 2019

Согласно GSON javadoc , пакет с именем com.google.code.gson.* отсутствует.Корневой пакет начинается с com.google.gson.Поэтому измените на:

import com.google.gson.*;

То, что вы видите в <groupId>, не имеет ничего общего с именем пакета.Всегда обращайтесь к javadoc или его исходным кодам для названия пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...