Как работает Maven-репозиторий - PullRequest
0 голосов
/ 03 февраля 2019

Я не понимаю, как я должен сопоставить определение класса с репозиториями Maven?
Например, у меня есть зависимость:

<dependency>
  <groupId>org.seleniumhq.webdriver</groupId>
  <artifactId>webdriver-chrome</artifactId>
  <version>0.9.7376</version>
</dependency> 

Мне нужен класс WebDriver, поэтому я предложилчто я должен импортировать org.seleniumhq.webdriver, но на самом деле он находится в org.openqa.selenium.Есть ли способ идентифицировать пакет?

Ответы [ 2 ]

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

Имя артефакта Maven! = Имя класса Java

Как прокомментировал Вопрос Эллиот Фриш, имя артефакта (<groupId> & <artifactID>), используемое Maven, является произвольным.Это имя не обязательно должно быть связано непосредственно с именами классов в библиотеке, загруженной Maven и установленной в вашем проекте.

Операторы import в классах, которые вы создаете в файлах .java, могут полностью отличаться от именования артефактов Maven.

Есть ли способ идентифицировать пакет?

Посетите веб-сайт для библиотечного проекта, в котором вы заинтересованы.Почти любой такой проект будет публиковать фрагмент кода Maven <dependency>.Например, эта страница из проекта H2 Database Engine .

Screenshot of a web browser window visiting the H2 Database Engine “Cheat Sheet” page listing a Maven dependency

Maven находит H2 Database Engine библиотека проекта в репозитории Maven , загружает его и устанавливает в свой проект Java.Затем вы добавляете оператор import в верхней части файла .java, чтобы идентифицировать пакет Java класса, который вы хотите использовать.

Обратите внимание на различные именования, как в репозитории Maven артефакт именуется с помощью<artifactId> из h2 и <groupId> из com.h2database, в то время как внутри Java import составляет org.h2.jdbcx.JdbcDataSource.

package work.basil.example.h2.pstmt_query;

import org.h2.jdbcx.JdbcDataSource;  // ⬅ Import a class from the .jar file that Maven downloaded and installed via the repository artifact named `h2` with groupId of `com.h2database`.

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

…

Чтобы найти Maven для поиска артефакта по имени класса, см. Ответ Дж. Ф. Мейера .

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

Если артефакт находится в MavenCentral, вы можете использовать поиск по имени класса на https://search.maven.org/ Префикс (квалифицированного) имени класса с c: и получить нужные артефакты.

...